作爲最近項目的一部分,我必須讀取和寫入CSV文件並將其放入c#中的網格視圖中。最後決定使用現成的解析器爲我完成這項工作。寫入和拋光CSV解析器
因爲我喜歡做那種東西,我想知道如何去寫我自己的東西。
到目前爲止,所有我能夠做到的是:
//Read the header
StreamReader reader = new StreamReader(dialog.FileName);
string row = reader.ReadLine();
string[] cells = row.Split(',');
//Create the columns of the dataGridView
for (int i = 0; i < cells.Count() - 1; i++)
{
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
column.Name = cells[i];
column.HeaderText = cells[i];
dataGridView1.Columns.Add(column);
}
//Display the contents of the file
while (reader.Peek() != -1)
{
row = reader.ReadLine();
cells = row.Split(',');
dataGridView1.Rows.Add(cells);
}
我的問題:地進行着這樣一個明智的想法,如果是(或者不是),我將如何對其進行測試正常嗎?
你必須改變分裂一行到細胞中,如果你想支持包含用逗號字符串值文件的方法。 – phoog 2012-02-13 19:37:07
即使在C#中,您也可以使用可推薦的VB.NET [TextFieldParserClass](http://msdn.microsoft.com/zh-cn/library/cakac7e6.aspx)。 – 2012-02-13 19:37:12
那麼,你不處理包裹在引號中的值。您不會在包含在引號中的值中處理新的行或逗號,也不會處理任何行比第一行具有更多列的情況。除非有一些令人信服的理由不這樣做,否則我會堅持使用庫工具,因此您不必擔心這些邊緣情況。 – Servy 2012-02-13 19:37:13