猿问

在C#中显示大型文本文件的最快方法是什么?

我正在编写ac#实用程序,该实用程序需要过滤和显示大文本文件(大小超过100MB)。

该实用程序以只读模式打开文本文件,应允许滚动浏览文本,跳转到特定的行号,搜索文本模式并根据用户定义的过滤器仅显示特定的行。

我希望我的实用程序在按下“加载”按钮后立即为用户提供对文件的访问权限,这是我遇到的问题:

我能够解决将文本文件快速读入DataTable的问题,但是,当我想在DataGridView中显示文本文件时,加载时间太长了。我正在使用DataGridView,因为我需要在文本的每一行附近显示其他列。

我在网上可以找到的唯一建议是每次仅显示文件的一部分。这个解决方案听起来很适合我的需求,但是会引起一些问题:

  1. 加载文件后不久,用户将希望开始执行以下操作:移至特定行,搜索文本或进行过滤,因此,将文件异步加载到DataGridView中可能不是解决我问题的最佳解决方案。

  2. 其他解决方案建议加载文件的前N行和文件的后M行,并在用户滚动时添加缺少的行。在这里,我在将DataGridView中的行号映射到DataTable中的行号时遇到了问题:如果我滚动到末尾然后开始向上滚动,或者只是跳转到特定的行号,我怎么知道哪些行已经被已加载,哪些还没有?

以前有没有人解决过这样的问题?


MMTTMM
浏览 250回答 1
1回答
随时随地看视频慕课网APP
我要回答