是否可以使用Streamreader
(或者我想除了Streamreader
以外的其他内容)来阅读特定的文本块?一个例子是我在文本文件中有数据的图表,按日期分隔,我想分别阅读每一天的数据。数据示例如下所示。
当我搜索方法时,我似乎只找到阅读整个文本文件或阅读个人行。第二个选项似乎可行,但问题是我每天都没有相同数量的条目,所以我需要动态确定要读取的行数。我认为最好的方法是告诉我的Streamreader
阅读两个单词之间的所有文字,例如" FAIL"和" Total"。但由于我无法在网上找到任何东西,我不确定它是否可能,如果可能,那该怎么办呢。任何帮助表示赞赏。
重要的是我计划将文件中的文本带到Excel中,因此我可能不得不将输出放入数组或其他内容,但以后会出现这个问题。
答案 0 :(得分:1)
这可以简单地写下你自己如何做到这一点 像这样:
如何做每一步都是一个偏好的问题。但通过分解它,你可以更轻松地制作一个看似复杂的问题。
答案 1 :(得分:0)
是
这称为 Parsing ,您需要编写自己的解析器。
从表面上看,它很容易做到。
您的红色和绿色部分似乎是固定宽度,这意味着您可以SubString
每列获取数据。
诀窍在于编写代码来确定您正在阅读的内容,并且通常需要您知道您之前正在解析的部分。你看起来就像检查线(可能需要一个修剪)是否解析到一个日期,知道你是在进程的开始一样简单。从那里开始阅读,直到你到达StartsWith
REF
的行,知道你的后续行将成为记录,直到出现几个字符的空格 - 这就是你知道的时候你的摘要。 / p>
答案 2 :(得分:0)
您应该使用正则表达式来读取此文件。一个接一个地读取每一行。在每一行上,您可以决定此行是否开始新条目,包含来自红色字段或绿色字段的数据。您可以通过将这些行中的每一行与正则表达式相匹配来完成此操作,最好使用组从中提取实际数据。