解析csv文件,忽略引号中逗号的逗号c#

解析csv文件,忽略引号中逗号的逗号c#

问题描述:

我目前正在寻找将用逗号读入应用程序的CSV文件进行拆分,但是,当我不想要的时候,双引号中会出现合法的逗号他们是。解析csv文件,忽略引号中逗号的逗号c#

当使用TextFieldParser这是阅读我想要它读取的字段,但它读取所有的领域,然后我努力让他们出在正确的线。

public string ParseCSVForFields(string dataFileName) 
    { 

     var sb = new StringBuilder(); 
     var line = new List<string>(); 
     using (TextFieldParser parser = new TextFieldParser(dataFileName)) 
     { 
      parser.TextFieldType = FieldType.Delimited; 
      parser.SetDelimiters(","); 
      parser.HasFieldsEnclosedInQuotes = true; 

      while (!parser.EndOfData) 
      { 
       //Processing row 
       string currentRow = parser.ReadLine(); 
       string[] fields = parser.ReadFields(); 
       foreach (var field in fields) 
       { 
       // this is where i am stuck 
       } 



      } 

     } 

     return null; 

    } 

任何和所有的帮助将非常感激。

感谢

+0

自己动手吗?或者去使用filehelpers http://filehelpers.sourceforge.net/ – Pleun 2014-11-05 11:53:25

+0

HasFieldsEnclosedInQuotes意味着你的值和引用如:“val,val2,val3”,“val4”,那么解析器将返回“val,val2,val4 “| “val4” – 2014-11-05 11:59:05

+0

我不明白从目前的描述问题。您能否提供示例输入,预期输出和实际输出? – Dialecticus 2014-11-05 12:02:41

要调用都ReadLineReadFields。这似乎是可疑的。删除ReadLine部分。

+0

除此之外,我还缺少 parser.HasFieldsEnclosedInQuotes = true; – 2014-11-07 09:53:37