固定長のtxtファイルを解析してXMLに変換する必要があります。そのために、ファイルヘルパーライブラリを使用しようとしています。FileHelpersでのSolvingBadUsage例外C#
私のtxtファイルは、これと少し似ています。列間には正しい数のスペースがあります。 Stackoverflowはそれらを削除しました。これもテキストファイルをここに掲載することはできません。私は、ファイルのパスを強調し、
BadUsageExceptionが未処理だったと言う新しいwindoeが開き、プログラムを実行するたびに、この
static void Main(string[] args) { var engine = new FixedFileEngine<VWDischargeTXT>(); VWDischargeTXT[] result = engine.ReadFile("C:\\Users\\GL1676\\Desktop\\CSRSDischarge01112016.txt"); foreach (var detail in result) Console.WriteLine(" AcctNum: {0}, Province: {1}", detail.AcctNum, detail.province); Console.Read(); }
よう
00000265287331ON Gaurav lath WVWDM9AJ3BW054510 665300313 20160111 00000265412333AB Kritin Kapoor WVWBA7AJ5AW423323 10100510855 20160111 00000265409491BC Gary Kasprov WVWMN9AN2AE538477 773713F 20160111 00000265723428ON ASBDHJW 3VWDX7AJ5BM008640 666760743 20160111 00003245782928AB Damn bruh 3VWDX7AJ7BM008526 10101931403 20160111 12345665842041NB Ayeyeyeye Yoyoyoy 3VWDX7AJ4BM317970 19498690 20160111 09876565877284ON Sample Name 3VWLX7AJ0BM004748 665727399 20160111 76542365887122AB Dragutiin ivanovic WVWCA7AJ7BW072789 10102120532 20160111 09843266079601BC Wayne Rooney 3VW3L7AJ4BM014663 837089F 20160111 23049466096203SK John Terry 3VWBK7AJXBM311645 300656416 20160111
私の主なルックス。 (この例外を回避するには、[FieldOptional]として指定する必要があります)
フィールドをオプションとして追加すると任意であり、実際には非常に重要です)、他にも多くのエラーがあります。
EDIT:あなたが指摘したように ここVWDischargeTXT
[FixedLengthRecord()]
class VWDischargeTXT
{
[FieldFixedLength(14)]
public int AcctNum;
[FieldFixedLength(8)]
[FieldTrim(TrimMode.Right)]
public char province;
[FieldFixedLength(126)]
[FieldTrim(TrimMode.Right)]
public char CustomerName;
[FieldFixedLength(26)]
[FieldTrim(TrimMode.Right)]
public char VIN;
[FieldFixedLength(51)]
[FieldTrim(TrimMode.Right)]
public char RegNo;
[FieldFixedLength(31)]
[FieldTrim(TrimMode.Right)]
[FieldConverter(ConverterKind.Date, "yyyyMMdd")]
public DateTime DischargeDate;
}
をテストしたい場合、私はすべてのフィールドを表示するようにコードを更新しました。診断するのに十分な情報がありません。あなたの質問を編集し、 'VWDischargeTXT'のクラス定義を追加してください。また、あなたの質問のデータがデータファイルと一致していることを確認してください(あなたはそれが「多少」そうです)、スクリーンショットではなくコードとしてフォーマットされたテキストとして投稿してください。 – Tone
編集を追加しました:) @Tone –
申し訳ありません投稿したときに自分のコメントを編集しましたが、お気づきかもしれません。あなたのデータの一部を見る必要があります(あなたの 'VWDischargeTXT'クラスは問題のデータと全く一致しませんので、うまくいきません)。 – Tone