【发布时间】:2018-03-12 14:14:26
【问题描述】:
我需要编写一个 CSV 解析器,我现在正试图分离字段来操作它们。
CSV 示例: mitarbeiter^tagesdatum^lohnart^kostenstelle^kostentraeger^menge^betrag^belegnummer 11005^23.01.2018^1^^31810020^5,00^^ 11081^23.01.2018^1^^31810020^5,00^^
如您所见,有几个空单元格。
我正在做以下事情:
using (CsvFileReader reader = new CsvFileReader(path))
{
CsvRow row = new CsvRow();
while (reader.ReadRow(row))
{
foreach (string s in row)
{
csvROW.Add(new aCSVROW());
string[] items = s.Split(new char[] { '^' }, StringSplitOptions.None);
csvROW[0].mitarbeiter = items[0];
csvROW[0].tagesdatum = items[1];
csvROW[0].lohnart = items[2];
csvROW[0].kostenstelle = items[3];
csvROW[0].kostentraeger = items[4];
csvROW[0].menge = items[5];
csvROW[0].betrag = items[6];
csvROW[0].belegnummer = items[7];
}
}
}
问题:
Split 似乎在逗号 (5,00) 之后停止。分隔符是^ ...有什么原因吗? 我尝试了几件事都没有成功......
非常感谢!
【问题讨论】:
-
是否可以
CsvRow.ReadRow以逗号分隔,因为它假设为 csv? -
看起来它在
,上拆分字段,然后您将第一个字段拆分在^上,第二个s in row可能会得到您00^^ 11081^23.01.2018^1^^31810020^5 -
是一行还是二行?只有 5 个单词.. 所以如果 csv 拆分器将这些作为标题,它将解释为什么它只得到 5 个值
-
在我的机器上运行良好
-
@DavinTryon:谢谢!这可以解决问题......我正在尝试修复它并会给你反馈。更新:Jup,ReadRow 以逗号分隔...非常感谢!