Есть ли способ удалить первую строку из StreamReader - PullRequest
2 голосов
/ 28 июня 2010

У меня есть потоковая программа, которая загружает csvfile, проблема в том, что в верхней части данных есть одна дополнительная строка, которую я хочу игнорировать.

Я использую проект CSVReader , который хорош, но

 csv.GetFieldHeaders(); 

всегда смотрит на первый ряд. Вместо того, чтобы переходить к исходному коду CSVReader и изменять его, я подумал, что было бы проще, если бы я мог «вырезать» эту первую строку из самого потокового считывателя, прежде чем вводить его в csvReader. Возможно ли это?

Ответы [ 3 ]

12 голосов
/ 28 июня 2010

Просто прочитайте строку из SR, прежде чем передать ее конструктору CSVReader.Например:

using (var sr = new StreamReader("data.csv")) {
    sr.ReadLine();
    using (var csv = new CsvReader(sr, true)) {
        // etc..
    }
}
3 голосов
/ 28 июня 2010

Простейшим способом было бы просто позвонить ReadLine(), прежде чем передать читателю CSVReader.

2 голосов
/ 28 июня 2010

StreamReader - это виртуальный класс, поэтому вы можете создать унаследованный класс, который делегирует все важные функции некоторому базовому StreamReader, за исключением того, что он пропускает первую строку текста (или вы можете наследовать от TextReader тип).Если CSVReader принимает StreamReader или TextReader в качестве аргумента, это должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...