WRITE(ファイル出力)
WTITEE命令は、他の命令のように単独で記述することはできません。
ファイルを利用する命令は、ENVIRONMENT DIVISIONやDATA DIVISIONで記述する定義とOPENやCLOSE命令とセットで利用しなければいけません。
READ命令とほぼ同一の記述が必要です。
1.環境部で記述する内容
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTOROL.
SELECT OUTPUT-FILE ASSIGN TO OPTFILE.
【解説】
①INPUT-OUTPUT SECTION.(この通り記述する)
②FILE-CONTOROL. (この通り記述する)
③SELECT OUTPUT-FILE ASSIGN TO OPTFILE.
この定義は、内部参照ファイル名と外部参照ファイル名を関連付ける定義です。
OUTPUT-FILEは、プログラム内で使用する内部参照ファイル名を記述します。
OUTPUT-FILEでなくOUT-FILEでも何でもよいですが、入力ファイル名として
わかりやすい名前を記述します。
OUTFILEは、外部参照ファイル名です。
これもOUTFILEでなくてもよいです。
COBOLの種類によって、”OUTFILE”と記述する場合もあります。
外部参照ファイル名は、メインフレーム(汎用コンピュータ)では
JCL(プログラムを実行するための定義体)で使用されます。
サーバ(UNIX系のコンピュータ)では、シェル(呼び名は違いますが
JCLと同じようなもの)で使用されます。
上述したファイル名以外は、そのまま記述すればよいです。
2.データ部で記述する内容
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE LABEL RECORD STANDARD
DATA RECORD INPUT-REC.
01 INPUT-REC.
03 INPUT-TANKA PIC 9(2).
03 INPUT-SURYO PIC 9(3).
FILE SECTION.
FD INPUT-FILE LABEL RECORD STANDARD
DATA RECORD INPUT-REC.
01 INPUT-REC.
03 INPUT-TANKA PIC 9(2).
03 INPUT-SURYO PIC 9(3).
【解説】
①FILE SECTION.(この通り記述する)
②FD OUTPUT-FILE LABEL RECORD STANDARD
DATA RECORD OUTPUT-REC.
OUTPUT-FILEは、ENVIRONMENT DIVISIONで記述した内部参照ファイル名です。
LABEL RECORD STANDARD(この通り記述する)
DATA RECORD OUPUT-REC.(この後記述する01レベルの項目名と同じ名称を
記述する)
01 OUTPUT-RECは、レコード名の記述でOUTPUT-RECでなくても任意で
わかりやすい名称であればよいです。
③01 OUTPUT-REC.(01はこの通り記述、OUTPUT-RECは②で記述した通りです)
④03 OUTPUT-TANKA PIC 9(2).
03 OUTPUT-SURYO PIC 9(3).
上の2行の記述は、入力ファイルのレコード構成を記述したものです。
PIC 9(2)は、2桁の数字、PIC 9(3)は3桁の数字という定義ですから、
合計した5桁がファイルの長さになります。
要するに出力するファイルの内容に合わせた記述をすることです。
2.手続き部で記述する内容
PROCEDURE DIVISION.
MAIN.
OPEN OUTPUT OUTPUT-FILE.
WRITE OUTPUT-REC.
CLOSE OUTPUT-FILE.
MAIN.
OPEN OUTPUT OUTPUT-FILE.
WRITE OUTPUT-REC.
CLOSE OUTPUT-FILE.
【解説】
①OPEN OUTPUT OUTPUT-FILE.
上のOPENステートメントは、OUTPUT-FILEを出力ファイルとして開く
(書き込むようにする)命令です。
この命令を実行することによって、WRITEできるようになります。
従って、OPEN命令はWRITE命令を実行する前に1回だけ実行する必要があります。
OPEN OUTPUT(この通り記述)
OUTPUT-FILEは、内部参照ファイル名を記述します。
②WRITE OUTPUT-FILE.
OUTPUT-FILEは、内部参照ファイル名を記述します。
③CLOSE OUTPUT-FILE.
上のCLOSEステートメントは、OUTPUT-FILEを閉じる(出力処理の終了)
命令です。
この命令を実行することによって、WRITEできなくなります。
従って、CLOSE命令は最後のWRITE命令を実行した後に1回だけ実行する必要が
あります。
OUTPUT-FILEは、内部参照ファイル名を記述します。
コメントを書く