組版プラグイン『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 データを作成する手間が省け、ミスも軽減されます。
次回 → 名刺・宛名 編 〜 条件分岐の考え方 〜