2014-11-05 241 views
0

我目前正在尋找將用逗號讀入應用程序的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

回答

1

要調用都ReadLineReadFields。這似乎是可疑的。刪除ReadLine部分。

+0

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