C# 读取一个文本文件,直到一行包含一些字符串文件,然后继续读取下一行,直到遇到另一个字符串
我必须读取一个文本文件,如果行包含“.engineering$name”,则查找包含“.default”的行,并对该行执行一些操作。我需要一直阅读这些行,直到在一组行中找到“.default”。(在我点击下一个“.engineering”之前,这一组就像是)。下一个“.engineering$name”的循环再次按此方式继续 注: “.engineering”关键字是固定字符串,$name动态读取, “.default”是固定字符串 我能够完成第一部分,即阅读包含“.engineering$name”的行 我无法获得下一部分的逻辑,在找到下一个“.default”之前,我会找到它 正在C#中查找此逻辑的逻辑或代码。多谢各位 代码: var nextLine是包含“.default”的行。我编写了类似immidate的代码,下一行是finding“.engineering”is having“.default”。但情况并非总是如此。“.default”可以在点击下一行“engineering”之前出现在任何行中 我希望问题陈述清楚。试试下面的代码-C# 读取一个文本文件,直到一行包含一些字符串文件,然后继续读取下一行,直到遇到另一个字符串,c#,filestream,var,using,C#,Filestream,Var,Using,我必须读取一个文本文件,如果行包含“.engineering$name”,则查找包含“.default”的行,并对该行执行一些操作。我需要一直阅读这些行,直到在一组行中找到“.default”。(在我点击下一个“.engineering”之前,这一组就像是)。下一个“.engineering$name”的循环再次按此方式继续 注: “.engineering”关键字是固定字符串,$name动态读取, “.default”是固定字符串 我能够完成第一部分,即阅读包含“.engineering$na
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"
while (!nextLine.Contains(".default") && !reader.EndOfStream)
{
nextLine = reader.ReadLine();
}
def_arr = nextLine.Split(' ');
def_val = def_arr[1].Replace("\"", "");
port_DefaultValues.Add(name + ", " + def_val);
}
}
}
我刚刚添加了一个循环,它将一直读取下一行,直到遇到.default
。请记住,若在文件的其余部分找不到异常,它将抛出异常 试试这个代码-
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"
while (!nextLine.Contains(".default") && !reader.EndOfStream)
{
nextLine = reader.ReadLine();
}
def_arr = nextLine.Split(' ');
def_val = def_arr[1].Replace("\"", "");
port_DefaultValues.Add(name + ", " + def_val);
}
}
}
我刚刚添加了一个循环,它将一直读取下一行,直到遇到
.default
。请记住,若在文件的其余部分找不到异常,它将抛出异常 请输入您的代码。我们可以帮助您解决问题,但为此,您需要展示您已经尝试过的内容。您需要为此输入代码。我已经添加了代码。使用与查找.engineering
相同的逻辑。您可以使用另一个嵌套循环来实现这一点。我不知道如何将该逻辑放入代码中。你能把那个的代码贴出来吗@我们可以帮助您解决问题,但为此,您需要展示您已经尝试过的内容。您需要为此输入代码。我已经添加了代码。使用与查找.engineering
相同的逻辑。您可以使用另一个嵌套循环来实现这一点。我不知道如何将该逻辑放入代码中。你能把那个的代码贴出来吗@这是一个陷阱是的它很有效。。。但我还需要处理下一组行中是否不存在.default。修改while循环的条件一致是,部分工作…您的代码将在下一行中搜索.default,直到文件结束。但我只想搜索到下一个“.engineering”。如果找不到,则将def_val设置为null。我想到了使用goto语句。我也写了相应的逻辑。现在它完全可以工作了。谢谢你们所有试图帮助我的人。哦,是的,它起作用了。。。但我还需要处理下一组行中是否不存在.default。修改while循环的条件一致是,部分工作…您的代码将在下一行中搜索.default,直到文件结束。但我只想搜索到下一个“.engineering”。如果找不到,则将def_val设置为null。我想到了使用goto语句。我也写了相应的逻辑。现在它完全可以工作了。谢谢所有帮助我的人。