LOOKUP 検索条件を満たす要素を見付けるためには、配列中の特定の要素から検索 を開始してください。 このタイプの検索を実行するためには、指標を用いない配列の場合と同様に、演 算仕様書に指定をしてください。 しかし、演算項目 2 には、検索する配列の名前 と、その後に検索を開始する要素の番号が入った (小数点以下の桁数のない) 数 値フィールドを括弧で囲んで続けてください。 この数値定数または数値フィールドは、配列中の特定の要素を指し示すため 、指標と呼ばれます。 指標は、検索条件を満たした要素番号によって更新されたり、あるいは検索が正 常に実行されなかった場合には 0 に設定されます。
数値定数を指標として使用して、1 以外の要素から始まる検索条件を満たす 要素の存在をテストすることができます。
指標を用いない配列に適用されるこれ以外の規則は、すべて、指標を用いた配列 にも適用されます。
図 75 は、指標を用いた配列の LOOKUP を示しています。
*...1....+....2....+....3....+....4....+....5....+....6....+....7... FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords++++++++++++++++++++++++++++ FARRFILE IT F 25 DISK F* DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++ DDPTNOS S 5S 0 DIM(50) FROMFILE(ARRFILE) DDPTDSC S 20A DIM(50) ALT(DPTNOS) D* CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.. C* The Z-ADD operation begins the LOOKUP at the first element in DPTNOS. C Z-ADD 1 X 3 0 C* At the end of a successful LOOKUP, when an element has been found C* that contains an entry equal to the search argument DPTNUM, C* indicator 20 is set on and the MOVE operation places the department C* description, corresponding to the department number, into DPTNAM. C DPTNUM LOOKUP DPTNOS(X) 20 C* If an element is not found that is equal to the search argument, C* element X of DPTDSC is moved to DPTNAM. C IF NOT *IN20 C MOVE DPTDSC(X) DPTNAM 20 C ENDIF
この例は、図 74 の場合と同じ部門番号の配列 DPTNOS を示し ています。 しかし、部門名称の交互配列 DPTDSC も定義されています。 DPTDSC の各要素の長さは 20 桁です。 ファイル中のデータでは配列全体を初期化するのに不十分な場合には、 DPTNOS の残りの要素にゼロが埋め込まれ、DPTDSC の残りの要素にはブランクが 埋め込まれます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.