Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 解析和显示大型文件_Parsing_Scalability - Fatal编程技术网

Parsing 解析和显示大型文件

Parsing 解析和显示大型文件,parsing,scalability,Parsing,Scalability,我正在开发一个工具,它接受一个文本文件,由许多行数据组成,对其进行解析,并在Windows窗体表(ListView)中显示数据。该工具的功能之一是能够根据用户输入过滤特定列。使用大小合理的文件时,没有问题。但是,我需要处理500MB甚至1GB的文件(解析了数百万条文本行)。我的一般问题是——做这件事的最佳方式是什么 一些更具体的问题: 1.最初,我应该读取整个文件并对其进行解析,还是应该分块读取,并在需要时(当用户向下滚动时)读取更多? 2.如果不读取整个文件,如何实现过滤器功能?当我过滤时,我

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

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

谢谢。

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

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

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