0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DataMagic】ちょっと紹介!マルチフォーマット形式の "共通設定" と "個別設定"

0
Last updated at Posted at 2026-10-24

はじめに

今まで DataMagic の色々なレイアウト定義や使い方を紹介してきましたが、紹介するために色々試していて、アレ?こんなことできるんだ って、今更知ることも。

今回は、既に紹介しているレイアウト定義:マルチフォーマットの こんなこと として、設定種別の "共通設定" と "個別設定" を取り上げてみることにしました。

共通設定

共通設定は、〝開始位置〟と〝長さ〟を1つ設定して、〝キー値〟の条件に一致するフォーマットを登録します。

キー値:どのフォーマット情報を採用するかを識別するための値

そのため、フォーマットIDのキー値はすべて同じ長さ のキーに設定します。

Qiita_062-01.jpg

キー区分は、Character か Binary が選べるようです。

Qiita_062-02.jpg Qiita_062-07.jpg

キー区分

  • Character:「キー値」を文字で指定します。
    MタイプやXタイプなどの文字データをキー値とする場合は"Character"をお勧めします。
  • Binary:キー値を16進数文字列で指定します。
    IタイプやBタイプなどのバイナリデータをキー値とする場合は"Binary"をお勧めします。

個別設定

個別設定は、〝開始位置〟〝長さ〟〝キー区分〟が、該当するフォーマットID毎に決められる 自由度の高い設定ができます

Qiita_062-03.jpg

左の一覧表で該当するID行を選んで、編集ボタン :pencil2: をクリックするか、ダブルクリックして、下図の項目設定画面で条件を設定します。

Qiita_062-04.jpg

また、設定できるキー値は 最大3件。
条件論理式が設定できるので、以下のように〝半角小文字の h もしくは 半角大文字の H なら〟なんて条件も設定できます。

Qiita_062-05.jpg

キー区分は、Character か Binary 以外に、拡張 が選べるようです。

Qiita_062-06.jpg

キー区分

  • Character:キー値を文字で指定します。
    MタイプやXタイプなどの文字データをキー値とする場合は"Character"をお勧めします。
  • Binary:キー値を16進数文字列で指定します。
    IタイプやBタイプなどのバイナリデータをキー値とする場合は"Binary"をお勧めします。
  • 拡張:キー値をASCII文字列で指定します。
    キー値を以下のように指定する場合は、"拡張"を選択してください。
     :small_blue_diamond: キー値に正規表現を使用したい場合
     :small_blue_diamond: キー値に16進数表現(¥xHH形式)を使用したい場合
     :small_blue_diamond: 21バイト以上のキー値を使用したい場合

条件に正規表現を使用したい場合は、下図のような感じで。

キー区分に拡張を選んだ場合は、範囲で指定したバイト数を読み込み、かつキー値の設定にマッチすることが一致の条件となります。

下図は、キー値に「開始位置=1」「mで始まる3バイト」を指定しています。

Qiita_062-08.jpg

キー情報を設定する段階で、ある程度条件が絞れるので、入力データを読み読み込んだ後の抽出条件と組合せると、結構柔軟にデータの仕分けが出来そうです。

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?