パイプで区切られたフラットファイルがあり、例として次のようになります
列A|列B|3*|注1|注2|注3|2**|A1|A2|A3|B1|B2|B3
最初の 2 つの列は設定されており、常に存在します。
* は、そのカウントに続く繰り返しフィールドの数を示すため、注 1 2 3
** は、フィールドのブロックが繰り返される回数を示し、ブロックには常に 3 つのフィールドがあります。
これは行ごとであるため、各行には異なる数のフィールドが含まれる場合があります。
これまでのところ、それが理にかなっていることを願っています。
このファイルを解析する最善の方法を見つけようとしています。
最終的な目標は、これらすべてのフィールドをいくつかの異なるファイルにマップすること、つまりデータ変換です。私は実際にこれらすべてを SSIS 内で行っていますが、既定のコンポーネントでは十分ではないため、独自のコードを記述する必要があると考えました。
更新私は基本的にこれをソースファイルのように読み、その間のいくつかのフィールドに対していくつかのルックアップと文字列操作を行い、通常のファイルからファイルへの変換SSISパッケージのようにいくつかの異なるファイルを吐き出そうとしています。
上記の例を使用して、最終的に次のような新しいファイルを作成したい場合があります
"ColA"、"HardcodedString"、"Note1CRLFNote2CRLF"、"ColB"
そして、別のファイル
行 1: "ColA"、"A1"、"A2"、"A3"
行 2: "ColA"、"B1"、"B2"、"B3"
だから私は、これを解析する方法と、データをスタックまたはリストに保存する方法についていくつかのアイデアを求めていると思います。で遊んで、後で吐き出します。