如何阅读txt的特定部分

时间:2013-09-20 22:06:10

标签: c#

假设我有一个txt文件,如:

%Title
%colaborations                 Destination
1                              123
2                              456
3                              555
%my name                       Destination
Joe doe $re                    Washington
Marina Panett $re              Texas
..
Laura Sonning $mu              New York
%other stuff

如何保存在数组中

array{
      ("Joe doe $re"), 
      ("Marina Panett $re"),
     ...,
      ("Laura Sonning $mu")
    }

我需要跳过:

%Title
%colaborations                 Destination
1                              123
2                              456
3                              555

直到找到

%my name                       Destination

我会开始阅读,直到文件结尾或我找到"%"

的内容

我正在考虑使用string txt = System.IO.File.ReadAllText("file.txt");,但我不认为读取所有txt是个好主意,因为我只需要一些部分...

2 个答案:

答案 0 :(得分:3)

您可以使用Enumerable.SkipWhile,直到找到所需内容:

string[] relevantLines = File.ReadLines(path)
    .SkipWhile(l => l != "%my name                       Destination")
    .Skip(1)
    .TakeWhile(l =>!l.StartsWith("%"))
    .ToArray();

请注意File.ReadLines不需要读取整个文件。它类似于StreamReader

答案 1 :(得分:1)

读取每一行,一旦该行包含“%my name”,然后按空格分割。