標籤:family 簡單的 配置 eve open back dev deb str
本文執行個體講述了c#分頁讀取GB文字檔的方法。分享給大家供大家參考。具體如下:
一、應用情境:
① .我在做BI開發測試的時候,有可能面對source檔案數GB的情況,如果使用一般的文字編輯器,則會卡死,或要等很久才能顯示出來。
② .有時候,我們使用ascii(01)或ascii(02)作為行或列的分隔字元,這樣的臨時檔案用於導資料到DB,如果檔案匯入處理程序中有錯誤,需要查看檔案 的時候,普通的編輯器不支援換行,則會很恐怖。
為解決這兩個需求,我使用c#完成了一個簡單的winform的應用程式。
功能列表:
1.根據配置的行數,寫測試檔案,指定行終止符,資料行分隔符號暫時沒有使用上。
2.根據指定的行終止符,和pagesize,分頁讀取檔案內容,而且可以在text和byte間轉換。
二、實現代碼:
主要的代碼如下,使用了一個迭代器:
代碼如下:
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#程式設計有所協助。
除聲明外,
跑步客文章均為原創,轉載請以連結形式標明本文地址
c#分頁讀取GB文字檔執行個體
本文地址: http://www.paobuke.com/develop/c-develop/pbk23331.html
相關內容C#開發之發送模板訊息C#使用Selenium+PhantomJS抓取資料C#6.0中10大新特性的應用和總結詳解C#中使用對象或集合的初始值設定項初始化的操作
C#、ASP.NET通用擴充工具類之LogicSugarWebService μ??òμ¥·a×°?ó?úμ÷ó?·?·¨C#簡單發送email的方法C#委託現實樣本分析
c#分頁讀取GB文字檔執行個體