指標名を使用した添え字付け (指標付け)

指標付けにより、テーブル検索や特定項目の操作などの操作を行うことができます。 指標付けを使用するには、データ記述記入項目に OCCURS 文節が入っているデータ記述記入項目に 1 つまたは複数の指標名を関連付けます。 指標名と関連する指標は添え字として機能し、その値は指標名と関連する項目のオカレンス番号に対応します。

テーブルと関連する指標名を識別する INDEXED BY 句は、OCCURS 文節のオプショナルの部分です。 指標名の定義は完全にシステム依存なので、指標名を記述する別の項目はありません。 指標名は、このプログラムだけが使用するためにコンパイラーが生成したレジスターと考えることができます。 指標名はデータまたはデータ階層の一部ではなく、COBOL プログラムの中で固有でなければなりません。

各指標名は、ユーザー定義語の形成規則に従っていなければなりません。

各指標名は、コンパイラーが生成したレジスターまたは記憶域を指します。

オブジェクト時の指標の初期値が定義されないときは、指標は添え字として使用される前に初期設定されなければなりません。 指標の初期値は以下のいずれかにより割り当てられます。
  • VARYING 句を伴う PERFORM ステートメント
  • ALL 句を伴う SEARCH ステートメント
  • SET ステートメント

CALL ステートメントの USING 句のパラメーターとしてまたは関係条件比較の中で指標名を参照できるのは、PERFORM、SET、または SEARCH ステートメントだけです。

テーブル・エレメントまたはテーブル・エレメント内の項目を参照する添え字としての整数またはデータ名を使っても、そのテーブルに関連付けられている指標に変化はありません。

指標名は、INDEXED BY 句によって関連付けられるテーブルだけへの参照として使用できます。

テーブルの形式内に配列されるデータは、しばしば検索されます。 SEARCH ステートメントには、逐次検索および非逐次 (例えば、2 進) 検索の機能があります。 これは、特定の条件を満たすテーブル・エレメントの検索およびそのテーブル・エレメントを示す関連した指標の値の調整に使用されます。

指標値が実行時に有効であるためには、指標値は、オカレンス番号が 1 以上であり、かつ許容できる最高値以下のテーブル・エレメントのオカレンスに対応している必要があります。

指標名についての詳細は、OCCURS 文節の INDEXED BY 句に記述されています。 INDEXED BY 句を参照してください。