簡體   English   中英

正確解析文本文件的方法

[英]Correct way parsing a text file

我有一個文本文件即將到來是一些預定義的方式。 我沒有像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 "" 

很多段落用空格線分隔。

任何saggestion什么是最好的解析這樣的文件並從文本中提取值。

我的第一個猜測是做這樣的事情:

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
            }
        }
    }
}

我建議使用File.ReadAllLines方法讀取完整的文件。 現在,您可以逐個迭代所有行。 然后對於每一行使用String.Split(' ')來獲取由行中的空格分隔的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM