【发布时间】:2012-03-01 14:11:00
【问题描述】:
我们有一个将其处理步骤记录到文本文件中的应用程序。这些文件在实施和测试期间用于分析问题。每个文件最大为 10MB,最多包含 100,000 行文本。
目前对这些日志的分析是通过打开文本查看器(Notepad++ 等)并根据问题查找特定字符串和数据来完成的。
我正在构建一个有助于分析的应用程序。它将使用户能够阅读文件、搜索、突出显示特定字符串以及与隔离相关文本相关的其他特定操作。
文件不会被编辑!
在尝试一些概念时,我立即发现 TextBox(或 RichTextBox)不能很好地处理大文本的显示。我设法使用 DataGridView 实现了一个性能可接受的查看器,但该控件不支持特定字符串的颜色突出显示。
我现在正在考虑将整个文本文件作为字符串保存在内存中,并且只在 RichTextBox 中显示数量非常有限的记录。对于滚动和导航,我想添加一个独立的滚动条。
我在使用这种方法时遇到的一个问题是如何从存储的字符串中获取特定的行。
如果有人有任何想法,可以指出我的方法存在的问题,然后谢谢。
【问题讨论】:
-
描述特定行。除此之外,LINQ 易于维护和阅读,而且速度可能足够快。 (a similar question yesterday)
-
特定字符串描述系统执行的操作。分析器将搜索它们以通过日志文件了解系统的处理。我的问题不在于搜索大文件,而在于向用户显示日志文件(或其中的一部分)。