ポインターの値の調整

次の例は、整数値を UP BY で増やしたり、DOWN BY で減らすことによってポインターの値を調整する方法を示しています。 このような方法でポインターの値を変更することは、ポインター・データ項目で参照されるテーブル中の項目にアクセスする場合に便利です。

   WORKING-STORAGE SECTION.
    01 A.
       05 ARRAY-USER-INFO OCCURS 300 TIMES.
          10  USER-NAME PIC X(10).
          10  USER-ID   PIC 9(7).
       01 ARRAY-PTR USAGE IS POINTER.
   LINKAGE SECTION.
   01  USER-INFO.
       05 USER-NAME LIKE USER-NAME OF ARRAY-USER-INFO.
       05 USER-ID LIKE USER-ID OF ARRAY-USER-INFO.
   PROCEDURE DIVISION.
         SET ARRAY-PTR TO ADDRESS OF ARRAY-USER-INFO(200). 1
         SET ADDRESS OF USER-INFO TO ARRAY-PTR. 2
         SET ARRAY-PTR UP BY LENGTH OF USER-INFO. 3
         SET ADDRESS OF USER-INFO TO ARRAY-PTR. 4
         MOVE "NEW NAME" TO USER-NAME OF USER-INFO.5

注:
  1. 最初の SET ステートメントは、ARRAY-USER-INFO 配列の 200 番目のエレメントのアドレスをポインター ARRAY-PTR の中に入れます。
  2. 2 番目の SET ステートメントによって、 データ項目 USER-INFO に ARRAY-USER-INFO 配列の 200 番目のエレメントと同じアドレスが与えられます。
  3. 3 番目の SET ステートメントは、配列の 1 つのエレメントの長さずつポインター ARRAY-PTR 内に含まれるアドレスを増やします。
  4. 4 番目の SET ステートメントによって、 データ項目 USER-INFO に ARRAY-USER-INFO 配列の 201 番目のエレメントと同じアドレスが与えられます。
  5. この移動は次の移動と同じです。
      MOVE "NEW NAME" to USER-NAME OF ARRAY-USER-INFO (201).

SET ステートメントの詳しい定義については、「WebSphere Development Studio: ILE COBOL 解説書」を参照してください。