2017-02-01 2 views
1

Чтение в файлах CSV и TextFieldParser пропускает строку заголовка.TextFieldParser игнорирует строку заголовка C#

Любая идея о том, как сделать первую строку, пропущена.

String[] Col3Value = new string[40]; 
TextFieldParser textFieldParser = new TextFieldParser(File1); 
textFieldParser.TextFieldType = FieldType.Delimited; 
textFieldParser.SetDelimiters(","); 
{ 
    { 
     string FileName = this.Variables.FileName.ToString(); 
     { 
      while (!textFieldParser.EndOfData)   
      { 
       File1OutputBuffer.AddRow(); 

       string[] values = textFieldParser.ReadFields(); 

       for (int i = 0; i <= values.Length - 1; i++) 
       { 
        Col3Value[i] = values[i]; 

        File1OutputBuffer.Column1 = Col3Value[0]; 
        File1OutputBuffer.Column2 = Col3Value[1]; 
       } 
      } 
     } 
    } 
    textFieldParser.Close(); 
} 
+0

опубликовать полный и правильный код здесь. –

+0

С LINQ textFieldParser.ReadFields(). Skip (1) – PinBack

+0

@PinBack Будет ли textFieldParser.ReadFields(). Пропустить (1) работать на C#? – john

ответ

3

Вы должны вручную пропустить первую строку.

Пример из Parsing a CSV file using the TextFieldParser

using (TextFieldParser parser = new TextFieldParser(path)) 
{ 
    // set the parser variables 
    parser.TextFieldType = FieldType.Delimited; 
    parser.SetDelimiters(","); 

    bool firstLine = true; 

    while (!parser.EndOfData) 
    { 
     //Processing row 
     string[] fields = parser.ReadFields(); 

     // get the column headers 
     if (firstLine) 
     { 
      firstLine = false; 

      continue; 
     }   
    } 
} 
0

Явного прочитать первую строку в неанализируемом образе

if (!parser.EndOfData) { 
    parser.ReadLine(); 
} 

while (!parser.EndOfData) 
{ 
    var fields = parser.ReadFields(); 
    ... 
} 
Смежные вопросы