「85. CLPで先行ゼロを消去するには」で文字フィールドの先行ゼロの消去の方法を
紹介したが、OS Ver 7.1〜では、組み込み関数 %TRIM が追加されているので
より簡単に先行ゼロを消去することができる。
【サンプル・ソース TESTTRIM 】
0001.00 PGM 0002.00 DCL VAR(&DSP05) TYPE(*CHAR) LEN(5) VALUE('00128') 0003.00 0004.00 CHGVAR VAR(&DSP05) VALUE(%TRIM(&DSP05 '0')) 0005.00 SNDPGMMSG MSG(' 数量 = ' *CAT &DSP05) MSGTYPE(*DIAG) 0006.00 ENDPGM
【解説】
>%TRIM(&DSP05: ‘0’) によって 00128 の先行ゼロを消去することができる。
%TRIM の記述方法でおわかりのように %TRIM は先行ゼロだけでなく
‘AAA128’ に対して %TRIM(&DSP05:’A’) と記述すれば、先行 ‘A’ を消去することができる。
%TRIM(&CHAR20:’ ‘)> のようにすれば一般的なトリム関数として利用することができる。