【发布时间】:2016-03-07 18:13:57
【问题描述】:
我有一个读取文本文件的程序,我希望它在文本文件中的某个标题之后收集数据,在本例中为 [HRData]。一旦流读取器到达[HRData],我希望它读取之后的每一行并将每一行存储在一个列表中,但允许我访问单独的数字。
文本文件是这样的:
[HRZones]
190
175
162
152
143
133
0
0
0
0
0
[SwapTimes]
[Trip]
250
0
3978
309
313
229
504
651
//n header
[HRData]
91 154 70 309 83 6451
91 154 70 309 83 6451
92 160 75 309 87 5687
94 173 80 309 87 5687
96 187 87 309 95 4662
100 190 93 309 123 4407
101 192 97 309 141 4915
103 191 98 309 145 5429
所以参考文本文件,我希望它存储 [HRData] 之后的第一行并允许我访问每个变量,例如 91 是 [0]。
如果单词与正则表达式匹配,我的代码已经存储到列表中,但我不知道如何将其编码为在 [HRData] 等特定字符串之后读取。
if (squareBrackets.Match(line).Success) {
titles.Add(line);
if (textAfterTitles.Match(line).Success) {
textaftertitles.Add(line);
}
}
这是我目前的尝试:
if (line.Contains("[HRData]")) {
inttimes = true;
MessageBox.Show("HRDATA Found");
if (inttimes == true) {
while (null != (line = streamReader.ReadLine())) {
//ADD LINE AND BREAK UP INTO PARTS S
}
}
}
【问题讨论】:
-
您可以读取 HRDATA 之后的行,将每一行拆分为数据。当你看到是什么让你停下来时停下来。
-
是的,这就是我想要达到的目标,但这就是我问这个问题的原因,我不知道如何告诉我的代码在 [HRData] 之后读取
-
因为我当前的 if 语句 if (line.Contains("[HRData]")) 只读取包含它的行,而我希望它在那之后读取。
-
while (null != (line = streamReader.ReadLine())) { arr = line.Split(" "); }
标签: c# regex streamreader