「85. CLPで先行ゼロを消去するには」で文字フィールドの先行ゼロの消去の方法を
紹介したが、OS Ver 7.1〜では、組み込み関数 %TRIM
が追加されているので
より簡単に先行ゼロを消去することができる。
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:' ')
のようにすれば一般的なトリム関数として利用することができる。