csvfile をロードする streamreader があります。問題は、無視したいデータの先頭に余分な行が 1 つあることです。
私は素晴らしいCSVReaderプロジェクトを使用していますが、
csv.GetFieldHeaders();
常に最初の行を見ます。CSVReader のソース コードにアクセスして変更する代わりに、ストリームリーダー自体からこの最初の行を "削除" してから、csvReader に挿入する方が簡単だと思いました。これは可能ですか?
csvfile をロードする streamreader があります。問題は、無視したいデータの先頭に余分な行が 1 つあることです。
私は素晴らしいCSVReaderプロジェクトを使用していますが、
csv.GetFieldHeaders();
常に最初の行を見ます。CSVReader のソース コードにアクセスして変更する代わりに、ストリームリーダー自体からこの最初の行を "削除" してから、csvReader に挿入する方が簡単だと思いました。これは可能ですか?
CSVReader コンストラクターに渡す前に、SR から行を読み取るだけです。例えば:
using (var sr = new StreamReader("data.csv")) {
sr.ReadLine();
using (var csv = new CsvReader(sr, true)) {
// etc..
}
}
ReadLine()
最も簡単な方法は、リーダーを に渡す前に自分自身を呼び出すことですCSVReader
。
StreamReader
StreamReader
は仮想クラスであるため、テキストの最初の行をスキップすることを除いて (または型から継承することもできます)、すべての重要な機能を基になる に委譲する継承クラスを作成できますTextReader
。が引数としてorをCSVReader
取る場合、これは正常に機能するはずです。StreamReader
TextReader