入出力コーディングの形式
入出力コーディングの一般形式を、以下の例に示します。 ユーザー提供情報についての説明は、コードの後に示しています。
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項目、およびREAD、OPEN、CLOSEの各ステートメントでは、同じファイル名を使用しなければなりません。 さらに、STARTまたはDELETEステートメントを使用する場合にも、ファイル名が必要になります。 この名前は、必ずしも、システムに認識されているデータ・セットの実際の名前でなくても構いません。 各ファイルには、独自のSELECT節、FD項目、および入出力ステートメントが必要です。 - (2) 割り当て名
- 選択した任意の名前 (COBOL およびシステムの命名規則に従うもの)。 名前は、ユーザー定義語である場合には 1 から 30 文字の長さにすることができ、リテラルである場合には 1 から 160 文字の長さにすることができます。 assignment-name の name 部分は、
DDステートメント、ALLOCATEコマンド (TSO)、または環境変数 (例えば、exportコマンド) (z/OS® UNIX) のいずれかにコーディングします。 - (3) org
- 組織は、
SEQUENTIAL、LINE SEQUENTIAL、INDEXED、またはRELATIVEのいずれかです。 この節は、QSAM ファイルについては任意指定です。 - (4) access
- アクセス・モードは、
SEQUENTIAL、RANDOM、または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編成の場合を除きます)。