はじめに
今まで DataMagic の色々なレイアウト定義や使い方を紹介してきましたが、紹介するために色々試していて、アレ?こんなことできるんだ って、今更知ることも。
今回は、既に紹介しているレイアウト定義:マルチフォーマットの こんなこと として、設定種別の "共通設定" と "個別設定" を取り上げてみることにしました。
共通設定
共通設定は、〝開始位置〟と〝長さ〟を1つ設定して、〝キー値〟の条件に一致するフォーマットを登録します。
キー値:どのフォーマット情報を採用するかを識別するための値
そのため、フォーマットIDのキー値はすべて同じ長さ のキーに設定します。
キー区分は、Character か Binary が選べるようです。
キー区分
- Character:「キー値」を文字で指定します。
MタイプやXタイプなどの文字データをキー値とする場合は"Character"をお勧めします。 - Binary:キー値を16進数文字列で指定します。
IタイプやBタイプなどのバイナリデータをキー値とする場合は"Binary"をお勧めします。
個別設定
個別設定は、〝開始位置〟〝長さ〟〝キー区分〟が、該当するフォーマットID毎に決められる 自由度の高い設定ができます
左の一覧表で該当するID行を選んで、編集ボタン
をクリックするか、ダブルクリックして、下図の項目設定画面で条件を設定します。
また、設定できるキー値は 最大3件。
条件論理式が設定できるので、以下のように〝半角小文字の h もしくは 半角大文字の H なら〟なんて条件も設定できます。
キー区分は、Character か Binary 以外に、拡張 が選べるようです。
キー区分
- Character:キー値を文字で指定します。
MタイプやXタイプなどの文字データをキー値とする場合は"Character"をお勧めします。 - Binary:キー値を16進数文字列で指定します。
IタイプやBタイプなどのバイナリデータをキー値とする場合は"Binary"をお勧めします。 - 拡張:キー値をASCII文字列で指定します。
キー値を以下のように指定する場合は、"拡張"を選択してください。
キー値に正規表現を使用したい場合
キー値に16進数表現(¥xHH形式)を使用したい場合
21バイト以上のキー値を使用したい場合
条件に正規表現を使用したい場合は、下図のような感じで。
キー区分に拡張を選んだ場合は、範囲で指定したバイト数を読み込み、かつキー値の設定にマッチすることが一致の条件となります。
下図は、キー値に「開始位置=1」「mで始まる3バイト」を指定しています。
キー情報を設定する段階で、ある程度条件が絞れるので、入力データを読み読み込んだ後の抽出条件と組合せると、結構柔軟にデータの仕分けが出来そうです。
以上です。







