程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#分頁讀取GB文本文件實例

c#分頁讀取GB文本文件實例

編輯:C#入門知識

c#分頁讀取GB文本文件實例。本站提示廣大學習愛好者:(c#分頁讀取GB文本文件實例)文章只能為提供參考,不一定能成為您想要的結果。以下是c#分頁讀取GB文本文件實例正文


本文實例講述了c#分頁讀取GB文本文件的辦法。分享給年夜家供年夜家參考。詳細以下:

1、運用場景:

① .我在做BI開辟測試的時刻,有能夠面臨source文件數GB的情形,假如應用普通的文本編纂器,則會卡逝世,或要等良久能力顯示出來。
② .有時刻,我們應用ascii(01)或ascii(02)作為行或列的分隔符,如許的暫時文件用於導數據到DB,假如文件導入進程中有毛病,須要檢查文件 的時刻,通俗的編纂器不支撐換行,則會很恐懼。

為處理這兩個需求,我應用c#完成了一個簡略的winform的運用法式。

功效列表:

1.依據設置裝備擺設的行數,寫測試文件,指定行終止符,列分隔符臨時沒有應用上。
2.依據指定的行終止符,和pagesize,分頁讀取文件內容,並且可以在text和byte間轉換。

2、完成代碼:

重要的代碼以下,應用了一個迭代器:

private IEnumerator<string> ReadLines(string filename)
{
/*
string line;
using (TextReader reader = File.OpenText(filename))
{
while ((line = reader.ReadLine()) != null)
yield return line;
}
*/
StringBuilder sb = new StringBuilder();
using (FileStream fs = File.OpenRead(filename))
{
int b = 0;
while ((b=fs.ReadByte())!=-1)
{
//textbox3 store the row terminator
if (b.ToString() == textBox3.Text.Trim())
{
yield return sb.ToString();
sb.Clear();
}
else
sb.Append(UnicodeEncoding.ASCII.GetString(new byte[] { byte.Parse(b.ToString()) }));
}
}
}

示例截圖以下所示:

我測試了一次,生成了1個億的數據行,在體系中顯示占用6GB的空間,
我測驗考試讀寫,無卡頓情形。
可以進一步更新:
依據列行分隔符顯示到gridview中,如許更清楚。
可以從後往前讀文件。

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved