以前にも %REPLACE の使用方法は解説しているが
もう少し進んだ使い方を解説する。
_
[ TESTRPL : %REPLACEの使い方サンプル・ソース ]
ソースはこちらから
0001.00 H DATEDIT(*YMD/) COPYRIGHT('(C) OfficeQuattrb Co,.Ltd Japan 2016-')
0002.00 F********** %REPLACE のテスト *****************************************
0003.00 F*
0004.00 F**********************************************************************
0005.00 D VALUE S 40A 小数
0006.00 D POS S 4S 0 小数
0007.00
0008.00 *(1) ABC を 12345 に変更する )
0009.00 C MOVEL(P) 'TEST ABCDEF 'VALUE
0010.00 C VALUE DSPLY ANS 1
0011.00 C EVAL POS = %SCAN('ABC':VALUE)
0012.00 C IF POS > 0
0013.00 C EVAL VALUE = %REPLACE('12345':VALUE:POS:3)
0014.00 C VALUE DSPLY ANS 1
0015.00 C ENDIF
0016.00 *(2) ABC を 12345 に変更する )
0017.00 /FREE
0018.00 VALUE = 'TEST ABCDEF ';
0019.00 VALUE = %REPLACE('12345':VALUE:%SCAN('ABC':VALUE):3);
0020.00 /END-FREE
0021.00 C VALUE DSPLY ANS 1
0022.00 C SETON LR
0023.00 C RETURN
[解説]
(1) の方法は固定記述で ABCという文字列を見つけた位置から3文字分を 12345 という
5文字に置き換えることを指示している。
%REPLACEで指定する文字数は検索している対象の文字数を指定することに
注意して欲しい。
(2)のほうはフリー・フォーマットで(1)の演算をひとつの式にまとめたものである。
このようにフリー・フォーマットの記述では POS という作業用のフィールドを
定義する必要もなくひとつの式にまとめて記述することができる
スマートな方法である。
_
