レガシー関数と推奨関数(文字列範囲を切り取る)
この記事では、文字列の切り取り処理において古いバージョンの関数を利用した場合と、新しいバージョンの関数を利用した場合のサンプルを記載しています。
SUBSTRING 関数
SUBSTRING 関数は、WebFOCUS 8.2 以降で登場した推奨関数(新しい関数)になります。
関数の使い方
SUBSTRING(対象の文字項目名や文字列 , 切り取り開始位置 , 開始位置から切り取る文字数)
サンプルプロシジャ
COUNTRY 項目の2文字目から3文字分を切り取る SUBSTRING 関数のサンプルです。
文字単位で切り取ります。
SET PAGE-NUM = NOLEAD
DEFINE FILE CAR
SUBSTRING/STRING = SUBSTRING(COUNTRY,2,3);
END
TABLE FILE CAR
PRINT COUNTRY SUBSTRING
END
SUBSTR 関数、SUBSTV 関数
STRREP 関数と SUBSTV 関数は、レガシー関数になります。
関数の使い方
SUBSTR( 対象の文字項目名や文字列の長さ , 対象の文字項目名や文字列
, 切り取り開始位置 , 開始位置から切り取るバイト数 , 格納する文字数 , 'AnV’)
SUBSTV( 対象の文字項目名や文字列の長さ , 対象の文字項目名や文字列
, 切り取り開始位置 , 開始位置から切り取る文字数 , 'AnV’)
※AnV は文字項目全体の長さを格納できるフォーマット
サンプルプロシジャ
MOJI 項目内には、英字(1バイトのSBCS)と平仮名(2バイトのDBCS)が混ざっています。
バイト単位で切り取る SUBSTR 関数と、文字単位で切り取る SUBSTV 関数のサンプルです。
SET PAGE-NUM = NOLEAD
DEFINE FILE CAR
MOJI/A10V = 'aあiいuうeえoお';
SUBSTR/A10V = SUBSTR(10,MOJI,2,3,3,'A10V');
SUBSTV/A10V = SUBSTV(10,MOJI,2,3,'A10V');
END
TABLE FILE CAR
PRINT COUNTRY MOJI SUBSTR SUBSTV
END