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-05-23

はじめに

DataMagic では、以下の 8 形式のデータを扱うことが出来ます。

  • CSV
  • フォーマット
  • マルチフォーマット
  • 階層フォーマット
  • XML
  • TEXT
  • Excel
  • DB テーブル

DataMagic で TEXT 形式以外のデータを扱う場合は、そのデータのレイアウトを定義して、入出力ファイルの設定に使用します。

ここでは マルチフォーマット形式 の定義を登録してみます。

今回の課題

例えば、下図のような発注書があります。
この発注書をデータ化して、商品の発注をしてもらう仕組みを作るとします。

Qiita_040-01.jpg

単純に考えると、以下のフォーマットで発注に必要な情報は(多分)網羅しています。

Qiita_040-02.jpg

がぁ、このフォーマットの場合、この発注書の空行の2行分もデータ量に含まれるので、空行分無駄な容量が必要になります。

マルチフォーマット形式

この発注書は下図のように、

  • 赤枠 :1つしかない項目
  • 緑枠 :1つ以上ある項目

に分けることができます。

Qiita_040-03.jpg

そして、赤枠用、緑枠用に、それぞれ以下のようなフォーマットが定義できます。

Qiita_040-04.jpg

この2つのフォーマットを組合わせる =〝マルチフォーマットで定義する〟になります。

レイアウト定義

フォーマット情報

マルチフォーマットで設定するフォーマットは、

  • データ(この場合は発注書1枚分)を識別する項目
  • 適用するフォーマットを区別する項目
  • その他の項目

で構成されるのが普通です。

今回の発注書のフォーマットの場合は、

  • データを識別する項目 =[発注元][発注年月日][発注書No.]
  • フォーマットを区別する項目 =[区分]

を、組み合わせるフォーマットの頭(赤点線内)に定義し、後ろにフォーマット毎の項目を設定します。

Qiita_040-05.jpg

マルチフォーマット情報

上記のフォーマットを登録し、〝開始位置〟と〝長さ〟を設定します。

使用するフォーマットを区別する項目は[区分]なので、区分の開始位置から、任意のバイト数(長さ)を設定します。

この発注書のフォーマットの区別は、キー値の「0」「1」で区別させるので、キー区分は〝Character〟で。

Qiita_040-06.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?