数字を文字フィールドに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’ となる。
非常にスマートな先行ゼロ消去の解決方法である。
_