C#在两个独特的Chars之间读取文本文件

时间:2016-05-04 17:19:17

标签: c# streamreader

我的文本文件如下所示

things


stuff
more stuff


//xxxxxxxxxxx

these
are the lines
I want to read 
into a string

//yyyyyyyyyy

如何阅读“// xxxxxxxxxxx”和“// yyyyyyyyyy”之间的界限 变成一个字符串?另外,我不知道它在哪个行号;它将从一个文件更改为文件,以及这两个分隔符之间有多少行。

我已经弄清楚如何读取整个文件,或者如何读取某些行,但不知道如何捕获像这样的块。如果可以避免,我不想先将整个文件读成字符串。 我只想将2个标记之间的行读入字符串。

1 个答案:

答案 0 :(得分:2)

您是否尝试过以下操作:

使用String s = StringReader.ReadLine()读取每一行。 如果s不等于开始读取块令牌(“// xxxxxxxxxxx”),则忽略它。 否则,启动while循环,并继续读取每一行,直到看到一行等于您的结束读取块令牌(“// yyyyyyyyyy”),并将您读取的每一行保存到StringBuilder或只是一个字符串。

以下是代码:

        string start_token = "//xxxxxxxxxxx";
        string end_token = "//yyyyyyyyyy";
        String line;
        String text = [your text here];
        StringReader reader = new StringReader(text);
        while (!(line = reader.ReadLine()).Equals(start_token)) 
        { 
            //ignore
        } 
        String result = "";
        while (!(line = reader.ReadLine()).Equals(end_token)) 
        {
            result += line;
        }
        Console.WriteLine(result);