CL

156. 文字列の先行ゼロを抑制するには

数字フィールドの値を文字フィールドに移すと先行ゼロが入ってしまう。
例えば 78.5という値を文字フィールドにCHGVAR命令で入れると

000078.5

と表示されてしまう。この先行ゼロ 000 を抑制する方法を示す。

0043.00              DCL        VAR(&FORMLEN) TYPE(*DEC) LEN(6 3) 
0044.00              DCL        VAR(&FORMLENC) TYPE(*CHAR) LEN(10)
 :
 :
0235.00              CHGVAR     VAR(&FORMLENC) VALUE(&FORMLEN)            
0236.00  NXTLENC:    IF         COND(%SST(&FORMLENC 1 1) *EQ '0') THEN(DO)
0237.00              CHGVAR     VAR(&FORMLENC) VALUE(%SST(&FORMLENC 2 9)) 
0238.00              GOTO       NXTLENC                                   
0239.00              ENDDO                                                

[解説]

方法として最初の1桁目が 0であれば 2桁目以降だけを取り出すようにして
それを繰り返しているだけのことである。
_