RPG

493. 先行ゼロを消去する %EDITCの使い方

数字を文字フィールドにMOVEしただけでは先行ゼロは
残ったままで例えば

   D DEC07           S              7S 0 INZ(128)   
   D FLD7            S              7A              
   :                                              
   C                   MOVE      DEC07         FLD7 

と演算したのでは FLD7 の値は ‘0000128’ と先行ゼロが
残ってしまう。文字列の先行ゼロを消去する良い方法は
ないだろうか?
 _

それがここで紹介する組み込み関数 %EDITC である。

/fREE
    FLD7 = %EDITC(DEC07:'Z');
/END-FREE

または

 C                EVAL FLD7 = %EDITC(DEC07:'Z')

と実行すれば FLD7の値は先行ゼロが消去されて
FLD7 = ‘  128’ となる。

非常にスマートな先行ゼロ消去の解決方法である。
_