0

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

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

谢谢。

4

1 回答 1

0

1)我会只读取显示初始页面所需的数据,然后生成一个后台线程来加载剩余的数据,这样当用户想要滚动/过滤时它就在内存中。

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

4)如上所述,将其存储在内存数据库中。SqlLite 允许您在内存数据库中创建,我相信有很多选择。

于 2013-09-17T07:59:29.207 回答