CSV文件解析问题

时间:2014-02-01 07:56:17

标签: c# csv import

我正在尝试阅读CSV文件,我在某种程度上取得了成功。

我试过

string[] values = strCurLine.Split(',');

我正在输出

array[0]="180"  
array[1]="LMN"  
array[2]="8"  
array[3]="5/17/2012 15:00"  
array[4]=""  
array[5]="name"  
array[6]="2nd row"  
array[7]="step 2 from 4 to 2"  
array[8]="7/9/2012  8:47:00 AM"  

但是当我试图读取其中包含(逗号)的内容时,它会提供额外的数组项,因此我会丢失数据。如何在字符串中替换逗号(,)。

我的预期输出是

array[0]="180"  
array[1]="LMN"  
array[2]="8"  
array[3]="5/17/2012 15:00"  
array[4]=""  
array[5]="name"  
array[6]="2nd row, step 2 from 4 to 2"  
array[7]="7/9/2012  8:47:00 AM"  

请建议

2 个答案:

答案 0 :(得分:1)

你已经遇到了所谓的“分隔符碰撞”

您需要更改分隔符本身或要放入逗号的位置。

要替换部分字符串,您可以使用String.Replace() - 但在这种情况下这不会真正帮助您,因为它会破坏您的csv文件。

所以我建议如下:

在文件中使用不同的csv分隔符(即使它被称为csv,您可以使用制表符或分号分隔它们) - 这是您不希望在数据中出现的内容。如果你完全控制了csv,你可以放置自己的分隔符(也许,或类似的东西)

对逗号添加某种“异常”。例如,使用\或或来定义逗号。然后你可以将整个csv文件的字符串替换为临时字符 - 并在完成后将其交换为逗号。

答案 1 :(得分:0)

点击这里,我回答了我的问题

Dealing with commas in a CSV file回答 harpo

谢谢,快乐的编码。

相关问题