Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


構造の初期化 (INITIALIZE)

INITIALIZE ステートメントをそのグループ項目に適用することによって、グループ項目内のすべての従属データ項目の値を初期化することができます。 ただし、グループ内のすべての項目を初期化することが必要な場合を除き、グループ全体を初期化することは非効率的です。

以下の例は、プログラムが作成するトランザクション・レコードの各フィールドをスペースおよびゼロにリセットする方法を示しています。フィールドの値は、作成される各レコードで同一というわけではありません。 (トランザクション・レコードは、英数字グループ項目 TRANSACTION-OUT として定義されています。)

01  TRANSACTION-OUT.
    05  TRANSACTION-CODE        PIC X.
    05  PART-NUMBER             PIC 9(6).
    05  TRANSACTION-QUANTITY    PIC 9(5).
    05  PRICE-FIELDS.
        10  UNIT-PRICE          PIC 9(5)V9(2).
        10  DISCOUNT            PIC V9(2).
        10  SALES-PRICE         PIC 9(5)V9(2).
. . .
    INITIALIZE TRANSACTION-OUT

レコード TRANSACTION-OUT (初期化前) TRANSACTION-OUT (初期化後)
 1 R001383000240000000000000000 b0000000000000000000000000001
 2 R001390000480000000000000000 b0000000000000000000000000001
 3 S001410000120000000000000000 b0000000000000000000000000001
 4 C001383000000000425000000000 b0000000000000000000000000001
 5 C002010000000000000100000000 b0000000000000000000000000001
  1. 記号 b は、ブランク・スペースを表します。

同様に国別グループ項目内のすべての従属データ項目の値は、そのグループ項目に INITIALIZE ステートメントを適用することにより、リセットできます。 以下の構造は、上記の構造と似ていますが、Unicode UTF-16 データを使用している点で異なります。

01  TRANSACTION-OUT GROUP-USAGE NATIONAL.
    05  TRANSACTION-CODE        PIC N.
    05  PART-NUMBER             PIC 9(6).
    05  TRANSACTION-QUANTITY    PIC 9(5).
    05  PRICE-FIELDS.
        10  UNIT-PRICE          PIC 9(5)V9(2).
        10  DISCOUNT            PIC V9(2).
        10  SALES-PRICE         PIC 9(5)V9(2).
. . .
    INITIALIZE TRANSACTION-OUT

トランザクション・レコードの直前の内容とは無関係に、上記の INITIALIZE ステートメントの実行後には次のようになります。

INITIALIZE ステートメントを使用して英数字または国別グループ・データ項目を初期化する場合、データ項目はグループ項目として、つまりグループ・セマンティクスを使用して処理されます。 グループ内の基本データ項目は、上記の例に示されているように認識および処理されます。 INITIALIZE ステートメントの REPLACING 句をコーディングしない場合、次のようになります。

関連概念
国別グループ

関連タスク
テーブルの初期化 (INITIALIZE)
国別グループの使用

関連参照
INITIALIZE ステートメント (「COBOL for Windows 言語解説書」)


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)