2012-09-10 102 views
-1

我有這樣一個文件的末尾...C#文件中讀取行找項目

2000,0, <-----ID 
0,180000.100,190000.200 
1,200000.100,210000.200 
2,300000.100,210000.200 
3,400000.100,400000.200 
2001,0, 
0,199999.001,100000.100 
1,200000.000,200000.100 
... 

我可以讀取線逐一使用StreamReader的,但我需要弄清楚如何獲得第一個和最後只針對每個ID組。所以對於上面的示例,我需要...

0,180000.100,190000.200 
3,400000.100,400000.200 
+1

爲零後'2001,0'?在'2000'之後是否應該有一個零? – dasblinkenlight

+0

您的問題缺少示例代碼 - 請確保示例顯示如何計算出組邊界。 –

+0

那麼你如何定義表示組邊界的線呢?少於2個逗號的行?沒有任何逗號的行嗎? – Servy

回答

0

您可以嘗試通過線檢查您輸入線,並把它們內部的List<string>

如:故意

string str = ReadNextLine(); 
if(IsANewIDGroupHeader(str)){ 
    CreateNewIDGroup(); 
    NewIDGroup.Add(str); 
}else{ 
    OldIDGroup.Add(str); 
} 
+0

感謝用類似的方式。 – Fonzy

1

使用行的總長度或逗號的數量。

您必須將行保存在內存中,因爲它是正向閱讀。

也就是說,讀取第1行。< = 1逗號?新項目,清除保存。 下一行,保存到「firstItem」變量。 每個後續行,保存到「lastItem」變量,覆蓋現有的值。

一旦您用< = 1逗號擊中另一行,請保存這兩個變量並將它們寫出到您的永久保存位置或對象。