作为最近项目的一部分,我必须从 CSV 文件中读取和写入,然后将其放入 C# 中的网格视图中。最后决定使用现成的解析器来为我完成这项工作。
因为我喜欢做这类事情,所以我想知道如何自己写。
到目前为止,我所能做的就是:
//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);
}
我的问题:像这样进行是一个明智的想法吗?如果是(或不是)我将如何正确测试它?
作为一项编程练习(用于学习和获得经验),这可能是一件非常合理的事情。对于生产代码,使用现有的库可能更好,主要是因为工作已经完成。 CSV 解析器需要解决很多问题。例如(随机地从我的头顶上掉下来):
- 带引号的值(字符串)
- 带引号的字符串中嵌入引号
- 空值(NULL ...或者甚至可能是 NULL 与空)。
- 条目数不正确的行
- 有标题与无标题。
- 识别不同的数据类型(例如不同的日期格式)。
但是,如果您在一个非常受控的环境中具有非常特定的输入格式,那么您可能不需要处理所有这些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)