我正在用StreamReader读取文件的.NET应用程序中编写文件解析器。要解析的文件以标头开头,标头以"<eoh>"
结尾。我想要从开始直到该字符串读取或忽略所有内容。实际数据在此之后开始。用StreamReader读取到某个字符串
该文件不是基于行的。一切只有通过这样的标记字符串进行分配。所以我不能使用ReadLine。
如何在不读取一个字符的情况下执行状态机来识别标记工作字符?我正在寻找一种方法,如StreamReader.SkipUntilAfter(string)
或StreamReader.ReadUntil(string)
。
哦,这个项目仍然使用.NET 2.0,所以在这里不需要LINQ。尽管如果有人建议使用它,我可能会解决这个问题。
如果文件是基于行的,你可以使用'File.ReadLines'和LINQ(f.e。'SkipWhile','TakeWhile')。 – 2014-10-19 19:53:20
您可以使用while((line = reader.ReadLine())!= null){//只读后行.Equals(“”)} –
Crasher
2014-10-19 19:54:52
更新的问题:它不是基于行的。标记可能出现在一行的中间。然后我已经阅读了部分数据。而StreamReader无法在任何地方寻找或寻找。 – ygoe 2014-10-19 19:57:25