我需要从文本文件(服务器的日志文件)逐行读取,它们很大(大约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