delphi - 寻找文本文件

标签 delphi text-files

我正在处理非常大的文本文件,2GB 甚至更多。我想要一个类似 Seek() 的函数。有人做过类似的事情吗?加载到 TStringList 是不可能的。也可以处理非类型化文件。目前我正在使用 readLn,但持续时间太长。谢谢。

最佳答案

将文件分段映射到内存(CreateFileMapping/MapViewOfFile),然后扫描映射的内存并构建一个索引 - 每行开头的位置列表。然后,您的查找操作将通过获取文件中第 N 行的位置并查找到该位置来执行。然后使用 TFileStream 对文件执行随机访问,或者,如果您只读取文件,也可以使用文件映射进行随机访问 - 这可能比并行使用 TFileStream 与文件映射更快。

关于delphi - 寻找文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4717621/

相关文章:

delphi - 如何防止多 View 不透明度影响Delphi中的子组件文本?

Delphi:写入后代类中私有(private)祖先的字段

delphi - Delphi从许多编辑中读取

Java:在按字母顺序排序的文本文件中查找单词的最佳方法

c# - 在另一个文本文件中搜索一个文本文件的行,速度更快

php - TXT 文件还是数据库?

使用 C 计算 ASCII 文件中的行数

python - 将列表追加到字典中

Delphi VirtualStringTree OnGetHint

delphi - delphi中的二维Safearray?