我需要從文本文件(服務器的日誌文件)逐行讀取,它們很大(大約150-200MB)。我正在使用StreamReader,它非常適合12MB等「小」文件,但不是那麼大。一段時間後,它被加載,它顯示在我的DataGridView但它的內存巨大。我在這個DataGridView上使用了bindingSource.Filter(就像文本框,當用戶寫信時,它會過濾一個字符串比較字符串,不會在文本框中顯示沒有字母的行等等),而且大文件也是無用的。所以我想問你什麼是最適合我的解決方案。將大文本文件讀取到datagridview中進行過濾
我一直在尋找並找到了一些解決方案,但我需要幫助決定對我來說,用什麼實現最好的(或者如果有別的東西):在後臺
- 加載數據並顯示實時他們。我不確定如何做到這一點,我不知道如何處理這個解決方案。
- 也許以某種方式升級streamreader?或者用二進制閱讀器編寫自己的文件讀取方法?
- 我在c#4.0中發現了一些關於內存映射的內容,但是我不能使用4.0。這可以幫助功能幫助嗎?
感謝您的幫助
好了,所以我實現分頁和我讀5K線的文本文件不是點擊按鈕旁邊線等之後。我正在使用BaseStream.Position來保存起始讀數,但我想使用其他一些節省行數的函數,主要是我想從精確的行開始讀取的使用方法,但是我無法找到StreamReader的任何內容。有沒有這樣的事情?
我該如何處理過濾?正如我所提到的,我應該再次加載比較字符串的文件吧?當用戶更改(添加,刪除)字母時,我應該再次加載文件並控制顯示哪一行以及哪些不顯示。 – 2010-10-20 08:39:17
你可以有一個額外的參數給ReadFile函數,這將允許你過濾行。 – 2010-10-20 08:43:27
好的,謝謝,我會嘗試。 – 2010-10-20 08:44:35