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


例: COBOL でのファイルのコーディング

入出力コーディングの一般形式を、以下の例に示します。 コードの後、ユーザーが指定した情報 (例内の小文字のテキスト) について説明します。

IDENTIFICATION DIVISION.
. . .
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT filename ASSIGN TO assignment-name  (1) (2)
    ORGANIZATION IS org ACCESS MODE IS access  (3) (4)
    FILE STATUS IS file-status  (5)
    . . .
DATA DIVISION.
FILE SECTION.
FD  filename
01  recordname  (6)
    nn . . . fieldlength & type  (7) (8)
    nn . . . fieldlength & type
    . . .
WORKING-STORAGE SECTION.
01  file-status    PIC 99.
    . . .
PROCEDURE DIVISION.
    OPEN iomode filename   (9)
    . . .
    READ filename
    . . .
    WRITE recordname
    . . .
    CLOSE filename
  STOP RUN.
(1) filename
任意の有効な COBOL 名。SELECT 文節および FD 項目、 および OPENREADSTARTDELETE、 および CLOSE の各ステートメントでは、同じファイル名を使用する必要があります。この名前は、必ずしも、システムに認識されているファイルの実際の名前でなくても構いません。各ファイルには、独自の SELECT 文節、FD 記入項目、および入出力ステートメントが必要です。WRITE および REWRITE では、ファイルに対して定義されたレコードを指定します。
(2) assignment-name
ASSIGN TO assignment-name をコーディングして、システムに認識されているターゲット・ファイル・システム ID とファイル名を直接指定するか、または環境変数を使用して値を間接的に設定することができます。

OPEN の際にシステム・ファイル名を識別したい場合は、ASSIGN USING data-name を指定できます。当該ファイルに対して OPEN ステートメントが実行されるときには、data-name の値が使用されます。また、オプションにより、ファイル・システムのタイプを識別することでシステム・ファイルの識別を処理することも可能です。

次の例は、inventory-file を動的に (MOVE ステートメントにより) ファイル d:¥inventory¥parts と関連付ける方法を示しています。

SELECT inventory-file ASSIGN USING a-file . . .
. . .
FD inventory-file . . .
. . .
77 a-file PIC X(20) VALUE SPACES.
. . .
    MOVE “d:\inventory\parts” TO a-file
    OPEN INPUT inventory-file
(3) org
編成 (SEQUENTIALLINE SEQUENTIALINDEXED、または RELATIVE) を示します。この文節を省略した場合は、デフォルトの ORGANIZATION SEQUENTIAL が使用されます。
(4) access
アクセス・モード (SEQUENTIALRANDOM、または DYNAMIC) を示します。この文節を省略した場合は、デフォルトの ACCESS SEQUENTIAL が使用されます。
(5) file-status
COBOL ファイル状況キー。 ファイル状況キーを、2 文字の英数字または国別データ項目として、あるいは 2 桁のゾーン 10 進数または国別 10 進数項目として指定してください。
(6) recordname
WRITE および REWRITE ステートメントで使用されるレコードの名前。1 つのファイルに対して複数のレコードを指定することができます。
(7) fieldlength
フィールドの論理長。
(8) type
ファイルのレコード形式と一致していなければなりません。レコード記述項目をレベル 01 以上に分ける場合は、各エレメントはレコードのフィールドに対して正確にマップします。
(9) iomode
オープン・モードを指定します。ファイルから読み取りだけを行う場合は、INPUT をコーディングします。ファイルへの書き込みだけを行う場合は、OUTPUT (新規ファイルのオープンまたは既存ファイル上での書き込み) または EXTEND (ファイル末尾へのレコードの追加) をコーディングします。読み取りと書き込みの両方を行う場合は、I-O をコーディングします。

制限: 行順次ファイルの場合、I-OOPEN の有効なパラメーターにはなりません。


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

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