解析并显示大文件

时间:2013-09-17 07:51:34

标签: parsing scalability

我正在开发一个工具,它接受一个文本文件,由多行数据组成,解析它并在Windows窗体表(ListView)中显示数据。该工具的一个功能是能够根据用户输入过滤特定列。使用合理大小的文件时,没有问题。但是,我需要处理500MB甚至1GB的文件(解析了数百万条文本行)。我的一般问题是 - 最好的方法是什么?

一些更具体的问题: 1.最初,我应该读取整个文件并解析它,还是应该以块的形式读取它并仅在需要时(当用户向下滚动时)阅读更多文件? 2.如果我没有读取整个文件,我该如何实现过滤功能?当我过滤我实际上搜索一个特定的术语,所以我不能读取整个文件。 3.如何实施过滤器?有没有一种聪明的方法可以做到这一点,但清除显示屏并检查每一行以检查过滤条件? 4.我应该如何处理解析数据?将它保存在单独的数据结构中?或者只把它放在显示屏上?

感谢。

1 个答案:

答案 0 :(得分:0)

1)我只读取显示初始页面所需的数据,然后生成后台线程以加载剩余数据,以便在用户想要滚动/过滤时将其存储在内存中。

3)对于过滤,我可能会使用内存数据库,它可以比你写的任何东西更快地处理过滤(没有冒犯!)。

4)如上所述,将其存储在内存数据库中。 SqlLite允许您在内存数据库中创建,我确信有很多替代方案。