正确解析文本文件的方法

时间:2012-01-12 07:32:00

标签: c# .net parsing

我有一个预定义的文本文件。 我没有像xsd这样的东西,但可以看到模式。

例如它看起来像这样:

[MyFIRSTPARAGRAPH]
NUM1 NUM2 NUM3 NUM4 NUM5 NUM6 NUM7 NUM8 NUM9 NUM10 NUM11
1 1 0.000 0.000 0.000 0 1 1 0 0 ""
2 2 22.800 0.000 0.000 0 1 1 0 0 ""
3 3 45.600 0.000 0.000 0 1 1 0 0 ""
4 4 68.400 0.000 0.000 0 1 1 0 0 ""
5 5 91.200 0.000 0.000 0 1 1 0 0 ""
6 6 0.000 32.800 0.000 0 1 1 0 0 ""
7 7 22.800 32.800 0.000 0 1 1 0 0 ""
8 8 45.600 32.800 0.000 0 1 1 0 0 ""
9 9 68.400 32.800 0.000 0 1 1 0 0 ""
10 10 91.200 32.800 0.000 0 1 1 0 0 "" 

很多段落用空格分隔。

任何解压缩最好解析这样的文件并从文本中提取值。

2 个答案:

答案 0 :(得分:2)

我的第一个猜测是做这样的事情:

using(var reader = GetStreamReader())
{
    bool justReadATag = false;
    string line = string.Empty;

    while((line = reader.ReadLine()) != null)
    {
        if(IsTag(line)) 
        {
            // do some work with the paragraph tag
            justReadATag = true;
        }else{
            string[] parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if(justReadATag) 
            {
                // do some work with the column names
                justReadATag = false;    
            }else
            {
                // do some work with the cell values
            }
        }
    }
}

答案 1 :(得分:0)

我建议使用File.ReadAllLines方法阅读完整的文件。现在,您可以逐个迭代所有行。然后,对于每一行,使用String.Split(' ')来获取由行

中的空格分隔的值