2011-02-01 43 views
0

我正在開發一個解析數據文件的應用程序。由於它是大文件,因此不適合加載到內存中。所以我迭代數據文件。但數據文件的結構像迭代時分組數據行

1. master data line1 
2. master data line2 
3. detail data line2-1 
4. detail data line2-2 
5. master data line3 
6. master data line4 
7. detail data line4-1 
8. detail data line4-2 
9. detail data line4-3 
10. ...... 

我需要將相關數據線組合在一起,然後將一個事務發送到數據庫。有人有類似的問題嗎?有更好的方法嗎?

謝謝,

+0

細節線是否總是緊跟主線? – jason 2011-02-01 22:35:49

+0

羣成什麼?你對數據做什麼? – Victor 2011-02-01 22:37:29

回答

0

窺視到下一行;如果是主人,照常進行,如果是細節,則追加線並查看下一行。

0

在一個組中使用以下過程將一堆相關的記錄集中在一起。它也不會一次加載整個文件到內存中。

List<string> collection = new List<string>(); 

foreach(var line in File.ReadLines("file.txt")) 
{ 
    if(line.StartsWith("master")) 
    { 
     if(collection.Count > 0) 
     { 
      WriteRecords(collection); 
     } 
     collection.Clear(); 
    } 
    collection.Add(line); 
}