入出力コーディングの形式

入出力コーディングの一般形式を、以下の例に示します。 ユーザー提供情報についての説明は、コードの後に示しています。


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  PICTURE 99.
. . .
PROCEDURE DIVISION.
    . . .
    OPEN iomode filename                       (9)
    . . .
    READ filename
    . . .
    WRITE recordname
    . . .
    CLOSE filename
    . . .
    STOP RUN.

以下は、上のコードでのユーザー提供情報の説明です。

(1) filename
任意の正規 COBOL 名。 SELECT 節と FD 項目、および READOPENCLOSE の各ステートメントでは、同じファイル名を使用しなければなりません。 さらに、START または DELETE ステートメントを使用する場合にも、ファイル名が必要になります。 この名前は、必ずしも、システムに認識されているデータ・セットの実際の名前でなくても構いません。 各ファイルには、独自の SELECT 節、FD 項目、および入出力ステートメントが必要です。
(2) 割り当て名
選択した任意の名前 (COBOL およびシステムの命名規則に従うもの)。 名前は、ユーザー定義語である場合には 1 から 30 文字の長さにすることができ、リテラルである場合には 1 から 160 文字の長さにすることができます。 assignment-namename 部分は、 DD ステートメント、 ALLOCATE コマンド (TSO)、または環境変数 (例えば、 export コマンド) (z/OS® UNIX) のいずれかにコーディングします。
(3) org
組織は、 SEQUENTIALLINE SEQUENTIALINDEXED、または RELATIVEのいずれかです。 この節は、QSAM ファイルについては任意指定です。
(4) access
アクセス・モードは、SEQUENTIALRANDOM、または DYNAMIC にすることができます。 順次ファイル処理の場合 (行順次ファイルを含む) は、この節を省略することができます。
(5) file-status
COBOL ファイル状況キー。 ファイル状況キーは、2 文字のカテゴリー英数字項目またはカテゴリー国別項目として、あるいは 2 桁のゾーン 10 進数 (USAGE DISPLAY) 項目または国別 10 進数 (USAGE NATIONAL) 項目として指定することができます。
(6) レコード名
WRITE または REWRITE ステートメントで使用されるレコードの名前。
(7) fieldlength
フィールドの論理長。
(8) type
ファイルのレコード形式。 レコード記入項目をレベル 01 記述以上に分ける場合は、各エレメントをレコードのフィールドに対して正確にマップします。
(9) iomode
INPUT または OUTPUT モード。 ファイルから読み取りだけを行う場合は、INPUT をコーディングします。 ファイルへの書き込みのみを行う場合は、OUTPUT または EXTEND をコーディングします。 読み取りと書き込みの両方を行う場合は、I-O をコーディングします (ただし、LINE SEQUENTIAL 編成の場合を除きます)。