c++ - 大型文本文件查看器如何工作?如何构建大型文本阅读器

标签 c++ python qt multithreading pyqt

如何large text file viewer work

我假设:

  • 使用线程处理文件
  • TextBox逐行更新
  • 使用有效的内存处理

这些假设是否正确?如果有人要开发自己的产品,必须做什么和不做什么?

我希望使用 DataGrid 而不是 TextBox 来实现一个

我对 C++ 和 Python 很满意。我可能会使用 QT/PyQT

编辑

我拥有的文件通常在 1.5 到 2 GB 之间。我正在考虑编辑和查看这些文件

最佳答案

我认为诀窍不是将整个文件加载到内存中,而是使用 seek 等只加载被查看的部分(可能前后都有一个 block 来处理一些滚动)。甚至可能使用内存映射缓冲区,尽管我没有这方面的经验。

一定要意识到修改一个大文件(快速)与仅仅查看它是不同的。您可能需要将编辑周围的数 GB 数据复制到新文件,这可能会很慢。

关于c++ - 大型文本文件查看器如何工作?如何构建大型文本阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720752/

相关文章:

c++ - 如何读入 .cfg.txt 文件

c++ - 流、字符和换行符

c++ - QtConcurrent 为多核提供更长的运行时间

android - 从 Play 商店更新我的应用程序后,如何在 Android 上保存 QSettings 文件的内容以使其可读?

c++ - Qt 中的 const char* 错误行为

c++ - 有人可以解释 malloc(20 * c | -(20 * (unsigned __int64)(unsigned int)c >> 32 != 0)) 的含义

c++ - 如何在计算中处理 "unsigned long long int"?

python - 使用请求验证 SSL 证书

python - 在给定时间内禁用 django 表单字段

python - Azure - 在 VM 上运行 http 服务器