先の「RPG のエラー・モニター(1)〜(3)」 で少し紹介したが、近年は標識を使用しない方向に移行しつつある。
米国紙の RPG ソース・コードのサンプルは、ほとんどフリー・フォーマットによる記述であり、しかも RPG 標識は
全くと言っていいほど使用されていない。その理由は、
他言語には標識という概念はないわけではなく、論理代数、つまり BOOL
値がこれに相当する。
他言語の場合は、標識という数字ではなく、
BOOL m_bEBCDIC = FALSE;
というように m_bEBCDIC
という TRUE
または FALSE
のどちらかの値をとる、BOOL
変数として「名前」 として
定義されているので、意味を把握しやすい。
さらに RPG の場合、結果の標識を定義する欄が 54桁目、56桁目, 58桁目と( 最近の RPGプログラマーは桁数は
覚えていないであろう ) と 3つの選択肢があるのでソース・コード上では判別しにくくなっている。
ここでは 標識を使用しない、組み込み関数の例をいくつか紹介する。
-------------------------------------------------------------------------- C SETOFF 99 C SHCODE CHAIN SHOHIN 99 C 99 EXSR NOT_FOUND --------------------------------------------------------------------------
-------------------------------------------------------------------------- C SHCODE CHAIN SHOHIN C IF NOT %FOUND C EXSR NOT_FOUND C ENDIF --------------------------------------------------------------------------
-------------------------------------------------------------------------- C SETOFF 50 C READ SHOHIN 50 C 50 LEAVE --------------------------------------------------------------------------
-------------------------------------------------------------------------- C READ SHOHIN C IF %EOF C LEAVE C ENDIF --------------------------------------------------------------------------
-------------------------------------------------------------------------- C 'DB2' SCAN STRING 50 C 50 EXSR FOUND --------------------------------------------------------------------------
-------------------------------------------------------------------------- C 'DB2' SCAN STRING C IF %FOUND C EXSR FOUND C ENDIF --------------------------------------------------------------------------