コーディング例
多くのプログラムに共通な一連のコード (ファイル記述とデータ記述、エ ラー・ルーチンと例外ルーチンなど) をライブラリーに保管し、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).
注: 多くの分離文字は COPY ステートメントを処理するときに特別に重要であるため、
この方法でテキスト語の一部を区切るために使用できる値は括弧およびコロン記号に制限されます。
さらに、ライブラリー・テキストを入力するときに、SEU 構文検査機能によってフラグが立てられたある特定のエラーを無視する必要があります。
関連情報