多くのプログラムに共通な一連のコード (ファイル記述とデータ記述、 エラー・ルーチンと例外ルーチンなど) をライブラリーに保管し、COPY ステートメントと結合させて使用できます。 そのような共通のコードについての命名規則が確立されている場合には、REPLACING 句を指定する必要はありません。 名前がプログラムごとに異なる場合には、REPLACING 句を使用して、このプログラムにとって意味のある名前を提供できます。
例 1: この例では、ライブラリー・テキ スト PAYLIB が次のデータ部の記入項目から構成されています。
01 A. 02 B PIC S99. 02 C PIC S9(5)V99. 02 D PIC S9999 OCCURS 1 TO 52 TIMES DEPENDING ON B OF A.
プログラマーは、プログラムのデータ部で次のように COPY ステートメントを使用することができます。
COPY PAYLIB.
ライブラリー・テキストは、COPY ステートメントのすぐ後で未変更のまま COBOL プログラムにコピーされます。
例 2: 例 1 で使用したライブラリー・テキスト内のデータ名のいくつか (またはすべて) を変更するには、 プログラマーは次のように REPLACING 句を使用できます。
COPY PAYLIB REPLACING A BY PAYROLL B BY PAY-CODE C BY GROSS-PAY D BY HOURS.
ライブラリー・テキストがコピーされるときに、結果のテキストは次のように書かれている場合と同様に表示されます。
01 PAYROLL. 02 PAY-CODE PIC S99. 02 GROSS-PAY PIC S9(5)V99. 02 HOURS PIC S9999 OCCURS 1 TO 52 TIMES DEPENDING ON PAY-CODE OF PAYROLL.
ここに示した変更は、このプログラムに対してだけ行われます。 テキストはライブラリーの中では変更されていません。
例 3: この例では、ライブラリー・テキストを作成中にある特定の規則に従う場合に、 データ名の一部を置き換えることができる方法を示します。 この場合、ライブラリー・テキスト CONTACT には次のコードが含まれます。
01 (PRFX)-RECORD. 03 (PRFX)-NAME PIC X(24). 03 (PRFX)-PHONE PIC X(10). 03 (PRFX)-EXTN PIC X(4).
プログラマーは、データ名の接頭部によってテキスト語 PRFX とそれを結合する括弧を置き換えて、 このライブラリー・テキストをコピーできます。 たとえば、次の COPY ステートメントをプログラムのデータ部に書くことができます。
COPY CONTACT REPLACING ==(PRFX)== BY ==CUST==.
ライブラリー・テキストがコピーされるときに、結果のテキストは次のように書かれている場合と同様に表示されます。
01 CUST-RECORD. 03 CUST-NAME PIC X(24). 03 CUST-PHONE PIC X(10). 03 CUST-EXTN PIC X(4).
関連情報