2009-03-31 22 views
2

比較的長いマルチレベルレコード形式のテキストファイルを処理する.NET Webサービスを使用しています。ファイル内の各レコードは異なるエンティティを表します。レコードには複数のサブタイプが含まれています。 (現在、COBOLジョブで同じレコードフォーマットが処理されていますが、それが見ているものをよりよく把握できれば)。私は入力データを保持するクラス構造(あなたがするならば、データ部)を作成しました。.NETでの固定幅処理のベストプラクティス

私の質問は、大規模で複雑な固定幅ファイルを.NETで処理するためのベストプラクティスは何ですか?私の一般的なアプローチは、行全体を文字列に読み込み、文字列のデータを作成したクラスに解析することです。しかし、文字列内の文字を配列として扱うか、文字列自体で処理する方が良いかどうかはわかりません。私は特定の質問、文字列対char []だと思うが、私は誰もが持っている他のポインタに感謝します。

ありがとうございました。

答えて

6

タイプ、長さなどの属性を使用して、行のデータと一致するクラスを作成します。次に、ファイルを読み込むためにMicrosoft.VisualBasic.FileIO.TextFieldParserオブジェクトを使用します。クラスに基づいてパーサーをプログラミングするための一般的なコードがあります。データを作成し、クラスのインスタンスを作成します(すべてリフレクションを使用します)。

私はこれをCSVとその高速、柔軟性、拡張性、一般性、および保守性の読み込みに使用します。また、各フィールドに一般的な検証を追加するための属性もあります。

私は自分のコードを共有したいと思いますが、私が働いている会社のIPです。

+0

+1はTextFileParserを認識しています。誰もそれについてここで知っているようです。誰もそれを言いたいことさえ好きではないような、秘密の問題があるのでなければ? – MarkJ

+0

合意。それ以前に私は決して頭を上げていません。ありがとう、たくさんのck。 –

+0

実際には、名前は 'TextFieldParser'です。それはかなり有益なクラスだと私は同意します。 – Gart

関連する問題