1

LumenWorks CsvReader を使用して、次の構造のファイルを解析しています。

heading1,heading2,heading3
data1,data2,data3,data4,data5

このコードは、見出しが 3 つあるため、1 行に 3 つのフィールドがあることを検出します。最初の行を解析して、data1、data2、および data3 を取得することはできますが、data4 または data5 にはアクセスできません。少なくとも、データ行の追加フィールドを検出できるようにしたいと考えています。これが可能かどうか誰にもわかりますか?

ありがとう!

4

2 に答える 2

2

これは、ファイルの列数を知るために最初の行を使用するためです。最初の行を「heading1,heading2,heading3,」に変更すると、期待どおりに動作します。

于 2012-05-11T15:11:26.323 に答える
0

これらのフィールドのデータは読み取れないと思います。むしろ、エラーが発生していて、表示されていないことを期待しています。これにより、少なくともこれらの他のフィールドがデータに存在することを検出できます。

DefaultParseErrorAction enumプロパティを設定して、エラーが発生していることを確認してください。あなたが説明するシナリオがMalformedCsvExceptionをトリガーすることを期待していました(DefaultParseErrorAction = ParseErrorAction.ThrowExceptionを設定した場合)。DefaultParseErrorAction = ParseErrorAction.RaiseEventを設定してから、イベントハンドラーをParseErrorイベントにアタッチすることもできます。最後に、各レコードの後でParseErrorFlagがtrueであるかどうかを確認できるはずです。

HTH

于 2012-05-11T14:47:39.330 に答える