【发布时间】:2019-07-31 05:10:25
【问题描述】:
我必须读取一个文本文件,如果行包含“.engineering $name”,则查找包含“.default”的行并使用该行进行一些操作。我需要继续阅读行,直到在一组行中找到“.default”。 (这集就像,直到我点击下一个“.engineering”)。对于下一个“.engineering $name”,再次像这样循环继续
注意: ".engineering" 关键字是固定字符串,$name 动态读取, ".default" 是固定字符串,
我可以做第一部分,即阅读包含“.engineering $name”的行 我无法获得下一部分的逻辑,找到“.default”,直到它点击下一个“.engineering”
在 C# 中查找此逻辑的逻辑或代码。谢谢
代码:
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
using (var reader = new StreamReader(stream))
{
while (!reader.EndOfStream)
{
string[] def_arr = null;
var line1 = reader.ReadLine();
if (line1.Contains(".engineering " + name + " ") && !reader.EndOfStream)
{
var nextLine = reader.ReadLine(); // nextLine contains ".default"
def_arr = nextLine.Split(' ');
def_val = def_arr[1].Replace("\"", "");
port_DefaultValues.Add(name + ", " + def_val);
}
}
}
var nextLine 是包含“.default”的行。我已经像 immidiate 下一行代码一样发现“.engineering”有“.default”。但情况并非总是如此。 ".default" 可以在下一个 ."engineering" 之前出现在任何行中。
我希望问题陈述清楚。
【问题讨论】:
-
请输入您的代码。
-
我们可以帮助您解决问题,但为此,您需要展示您已经尝试过的内容。您需要为此输入代码。
-
我已经添加了代码。
-
使用与查找
.engineering相同的逻辑。您可以为此使用另一个嵌套循环。 -
我不知道如何将该逻辑放入代码中。你可以请张贴代码吗? @这是一个陷阱
标签: c# filestream var using