入出力コーディングの一般形式を、以下に示します。
コードの後に、ユーザー指定の情報について説明しています。
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) assignment-name
- 選択した任意の名前 (COBOL およびシステムの命名規則に従うもの)。名前は、ユーザー定義語である場合には 1 から 30 文字の長さにすることができ、リテラルである場合には 1 から 160 文字の長さにすることができます。assignment-name の name 部分は、DD ステートメントで、ALLOCATE コマンド (TSO) で、あるいは環境変数として (例えば、export コマンドで) (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) recordname
- WRITE および REWRITE ステートメントで使用されるレコードの名前。
- (7) fieldlength
- フィールドの論理長。
- (8) type
- ファイルのレコード形式。レコード記入項目をレベル 01 記述以上に分ける場合、各エレメントはレコードのフィールドに対して正確にマップしなければなりません。
- (9) iomode
- INPUT または OUTPUT モード。ファイルから読み取りだけを行う場合は、INPUT をコーディングします。書き込みだけを行う場合は、OUTPUT または EXTEND をコーディングします。読み取りと書き込みの両方を行う場合は、I-O をコーディングします (ただし、LINE SEQUENTIAL 編成の場合を除きます)。