RPG

512. フリー・フォーマットの改行の注意

フリー・フォーマットの行あふれで改行するときに
つい「」(ハイフン)をつけてしまいがちであるが
これは不要である。
逆に「」をつけるとコンパイルは通るが予想以外の実行エラーが
発生してしまう。
_

[誤り]

0224.00        IF %SCAN('$FLDLEN': PTNSRC) > 0;                   
0225.00          PTNSRC = %REPLACE(%TRIMR(%CHAR(KLR(N))):PTNSRC:  -
0226.00                  %SCAN('$FLDLEN':PTNSRC):7);              
0227.00        ENDIF;                                             

[解説]

2行目の右端に「」(ハイフン)が付加されていることに注意。

[正]

0224.00        IF %SCAN('$FLDLEN': PTNSRC) > 0;                   
0225.00          PTNSRC = %REPLACE(%TRIMR(%CHAR(KLR(N))):PTNSRC:  
0226.00                  %SCAN('$FLDLEN':PTNSRC):7);              
0227.00        ENDIF;                                             

[解説]

フリー・フォーマットではこのように
%REPLACE –> %TRIMR —> %CHAR

と組込み関数を重ねて使用することができるので
記述が短くてわかりやすくなる。
_