2012-10-15 36 views
-1

我是C#.net的新手。有人能幫我解決以下問題嗎?謝謝。如何讀取和解析各行的數據?

我需要從文件中讀取內容,然後檢查文件的每一行以查找由「:」或「,」分隔的數據。然後獲取「:」和「,」之間的數據。最後將其添加到數據表中。

我該怎麼做? 任何幫助是高度讚賞。

+0

你見過[這篇文章](http://stackoverflow.com/a/736647/1370166)嗎?它在視覺基本命名空間中,但不要讓它阻止你。它可以在C#中使用。 – TylerOhlsen

+0

我剛剛通過它,我很難在C#中做到這一點。謝謝 – Maraduarz

回答

0
String linestring = streamreader.ReadLine(); 
String[] linetokens = linestring.Split(new String[]{":",","}, StringSplitOptions.None); 

之後,linetokens數組將填充您需要的段。

+0

當我讀取單獨的行/行時,我是否在循環中使用它? – Maraduarz

+0

是的,也許是一個while循環,會在EOF結束,或者先調用streamReader.ReadLines()來獲取數組,然後您可以使用foreach循環,如下所示 – Wanabrutbeer

+0

謝謝,通過一些調整,您的建議幫助我完成了我正在做的事情。 – Maraduarz

0

考慮到你的問題的一般性和整體範圍(即你應該把它分解成你不明白的部分,並單獨詢問),這是最好的我可以拿出可以做你的想。

var data = File.ReadLines() // read the content from a file 
       .Where(line => line.Contains(":") && line.Contains(",") // data separated by ":" & "," 
       .Select(line => line.Split(":,".ToArray())[1]) // data between ":" & "," -- could yield data between "," and ":" 
       .Select(data => new object[] {data}); // for DataTable.Rows.Add 

// I can only assume you have a DataTable with one column 
foreach(var rowData in data) 
    yourTable.Rows.Add(rowData); 

希望這能激勵你。

+0

謝謝你的建議。我在這方面還是個新手,剛從本週開始學習和工作。 我已經有一個多列數據表,但我想你的步驟來添加行將起作用。我會嘗試其餘的。 謝謝。 – Maraduarz