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#法式設計有所贊助。