特定の文字を区切り文字として文字列を切り取る

2024年3月23日テクニカルメモ

この記事では、特定の区切り文字を指定して、区切った文字列を取得するサンプルを記載しています。

TOKEN 関数、GET_TOKEN 関数

TOKEN 関数では「特定の文字」を区切り文字として、文字列を取得することができます。

例えば「あい,うえ@お」という文字列において、カンマ(,)を区切り文字として「あい」と「うえ@お」を分けるようなことができます。

関数の使い方

TOKEN(対象の文字項目名や文字列 , '区切り文字’ , 取得する位置)

GET_TOKEN(対象の文字項目名や文字列 , '区切り文字’ , 取得する位置)

GET_TOKEN関数は区切り文字を複数指定できます。

取得する位置は、正の値だと前から取得、負の値だと後ろから取得します。
「あい,うえ@お」をカンマ区切りで取得する場合、「1」は「あい」、「-1」は「うえ@お」です。

サンプルプロシジャ

MOJI項目には「あい,うえ@お」という文字列が格納されています。
TOKEN関数では「カンマ区切り」、GET_TOKEN関数では「カンマ@区切り」を指定しています。

SET PAGE-NUM = NOLEAD
DEFINE FILE CAR
 MOJI/A10V       = 'あい,うえ@お';
 TOKEN1/A10V     = TOKEN(MOJI,',',1);
 TOKEN2/A10V     = TOKEN(MOJI,',',-1);
 GET_TOKEN1/A10V = GET_TOKEN(MOJI,',@',1);
 GET_TOKEN2/A10V = GET_TOKEN(MOJI,',@',-1);
END
TABLE FILE CAR
 PRINT COUNTRY NOPRINT
       MOJI       OVER
       TOKEN1     OVER
       TOKEN2     OVER
       GET_TOKEN1 OVER
       GET_TOKEN2
 WHERE COUNTRY EQ 'FRANCE'
END
出力結果イメージ

TOKEN関数とGET_TOKEN関数では、先頭の文字列(1)と後方の文字列(-1)を指定しており、以下の文に書かれている黄色赤色のマーカーの位置が切り取る文字列になることを確認してください。

TOKENでは「あい,うえ@お」、GET_TOKENでは「あい,うえ@」が取得されます。