gpt4 book ai didi

delphi - 如何快速显示大 (GB) 文本文件?

转载 作者:行者123 更新时间:2023-12-03 18:13:03 32 4
gpt4 key购买 nike

我想在我的应用程序中快速显示一个大文本文件的内容,而不是将整个文件加载到内存中。

其他人是怎么做的?

  1. Total Commander是一个很棒的工具,它有一个很棒的内部查看器可以做到这一点。无论文件有多大,它都会立即打开任何文件(或者快到我无法计时的速度)。我在 12GB 文件上试了一下。显示文件时没有显着的内存使用(仅约 100KB)。他们是怎么做到的?

  2. SynEdit - 程序卡住(几分钟),因为它将首先解析整个文件,然后它会显示文本。

  3. LargeTextFile
    滚动条的近似大小。滚动条不断调整(缩小),直到程序最终读取整个文件(可能需要几分钟)。和Total Commander比起来真的很烂。

  4. UltraEdit 32 - 程序卡住(我不得不杀死它,因为我没有耐心(或 ram)让它完成)

最佳答案

您只需按 block 读取文件(例如,按 64KB 或 128KB 的 block ),然后计算这些 block 中的行。不要尝试使用整个文档的线条(如 Silvester 建议的那样),而是使用 block 和偏移量,然后欺骗 UI 以模拟您不知道线条的事实。

滚动条不会跟随行,而是文件中的偏移量,然后是 block 内的偏移量。如果你移动条,你会猜到最近的行开始和结束在 block 中。

它的缺点是更容易有一个最大的行长度,也就是 block 。 TotalCommander 会包装很长的行,我想是由于它的内部分 block 算法。

关于delphi - 如何快速显示大 (GB) 文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40308442/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com