フリー・フォーマットになって
LOOKUP命令は %LOOKUP , %LOOKUPGE, ,,,など多様になると同時に
記述が大変楽になった。
_
固定式フォーマットでの ILERPGの LOOKUPでは
Z-ADD 1 N CODE LOOKUP CDR(N) 50 IF *IN50 = *ON : ENDIF
のように記述しており特に
Z-ADD 1 N
をいちいち記述することが面倒であった。
ほとんどが指標N は 1から検索するのが普通なので
いちいち
Z-ADD 1 N
という行は本当に無駄のようであった。
フリー・フォーマットでは
/FREE : N = %LOOKUP(CODE: CDR); : /END-FREE
のようにして Z-ADD 1 N
の無駄な記述は必要なくなった。
しかし探索かる配列に複数の同じコードが存在する場合
始発の N を指定する必要がある場合が出てくる。
/FREE
:
STRIDX = 1;
DOW ON;
N = %LOOKUP(CODE: CDR: STRIDX);
IF ...
STRIDX = N + 1;
ENDIF;
ENDDO;
:
/END-FREE
のようにして %LOOKUPの後続に探索を開始する位置の指標を
STRIDX で明示的に指定することがせできる。
_