組版プラグイン『DDCSV2(現在はサブスク版 DDCSVとして販売中)』スクリプト講座
名刺・宛名 編(全10回)

データの部分的な取り出し

CSVファイルのデータを、部分的に取り出すことができます。 

例えば、宛名のスクリプトで、郵便番号のCSV データが、前3桁(郵便区番号)と後ろ4桁(町域番号を)が、別の項目になっていない(数字7桁の文字列)の場合などに利用します。

^データの名前 (ファイル番号 ,データ番号 ,開始位置 ,文字長 )

^データの名前 (ファイル番号 ,データ番号 ,“開始文字” ,“終了文字” )

  •  開始位置には、データを取り出す位置を指定します。
  • データの先頭を0とした、バイト数を指定します。
  • 半 角文字を1バイト、全角文字を2バイトと計算します。
  • 開始位置にマイナスの数字を指定した場合は、データの末尾から取り出します。
  • 文字長には、取り出すデータの長さをバイト数で指定します。
  • ヘッダー部分やテイル部分のデータは、データ番号として0を指定してください。
  • 開始文字には、取り出すデータの直前の文字を指定します。
  • 終了文字には、取り出すデータの直後の文字を指定します。
  • 開始文字と終了文字に挟まれた部分のデータを取り出します。 

上記に従い、開始位置と文字長を指定して、データを部分的に取り出す場合の指定例と、取り出した結果を次に示しま す。


^$1 (0) で表されるデータに、“あいうえおかきくけこさしすせそ”という文字列が設定されているとします。

例1) データの先頭から、10バイト(全角で5文字)取り出す

^$1(0,0,0,10) →  あいうえお

例2) データの先頭の4バイト(全角で2文字)目から、10バイト取り出す

^$1 (0,0,3,10) → うえおかき

例3) データの末尾から、10バイト取り出す

^$1 (0,0, -0,10) → さしすせそ

続いて、開始文字と終了文字の指定例と、取り出した結果を次に示します。


^DATA(0) で表されるデータに、“03(99)2000”という文字列が設定されているとします。

例4) “(”と“)”に挟まれた部分の文字列を取り出す。

^$1 (0,0,”(”,”)”) → 99

もう少し実用的な例題として、”郵便番号” の数字データの取り出しを例にします。

CSV データ:

上記のような場合です。

具体的として、下記のような記述をします。
( ”郵便番号” を変数で指定した例です。)

<解説>
データ(この場合、”郵便番号”)の先頭から3バイト取り出しなさい。

<解説>
データ(同様に、”郵便番号”)の4バイト目から4バイト取り出しなさい。

その結果、

<解説>
頭から3桁→(先頭から3バイト取り出す)→ ” 251 ”

残り4桁→(4バイト目から4バイト取り出す)→ ” 0024 ”

<今回のポイント>

流し込みしたいデータが、列で分かれていなくても、部分的なデータ抽出が出来る。その結果、流し込み用のCSV データを作成する手間が省け、ミスも軽減されます。

次回 → 名刺・宛名 編 〜 条件分岐の考え方 〜