COBOL入門 Mission3-1 ファイルの読み込み

処 理 内 容 PROGRAM-ID 難易度 言語
プログラムを表示する LST001 1 COBOL
1:処理図
2:処理概要

ソースプログラム[C:\cobol\lst001.cbl]を読んで画面に表示する

なお、ソースプログラムは1行が80バイトありますが、画面に表示する都合上、入力レコードは72バイトとして下さい
3:ファイル名称 I-O 外部ファイル名 編成 KP/KL RL/BF access
(1)ソースプログラム in C:\cobol\lst001.cbl seq  /  72/1
5:出力メッセージ

☆ソースプログラムも単なる[ファイル]としてディスク上に存在しています

6:その他

【豆知識】
従来、構造化プログラムの記述方法としてPerform制御の記法がもちいられていましたがCOBOL85コンパイラの登場以来、整構造が用いられるようになりました。最近では情報処理技術者試験も「整構造」で出題されるようになっています。

★ファイルの読み込み命令 [ READ ]

    READ  入力ファイル名
       END
              ファイル終了時の命令
       NOT END
              ファイルを読めた時の命令
    END-READ
※COBOLのREAD命令は、ファイル全部を一度に読むのではなく、1件(レコード)ずつ読み込みます。

★ファイルの状態 [ STATUS ]

    SELECT  ファイル名  ASSIGN  TO  実ファイル名  STATUS  任意名の項目
ファイル記述にSTATUS(ステータス)をつけておくと、ファイルの状態異常を利用して、処理の分岐ができます。例を挙げた方がいいかな。
     SELECT  A-FILE  ASSIGN  TO  "c:\cobol\lst001.cbl"  STATUS  FST.
 DATA                     DIVISION.
 FILE                     SECTION.
 FD  A-FILE.
 01  A-REC   PIC X(72).
 WORKING-STORAGE          SECTION.
 01  FST     PIC X(02).
 PROCEDURE                DIVISION.
     OPEN  INPUT  A-FILE
     PERFORM  UNTIL  FST  NOT  =  "00"
         READ  A-FILE
             END
                CONTINUE
             NOT END
                DISPLAY  "READ OK"
         END-READ
     END-PERFORM

ファイルが正常な場合、FST="00"となります。何らかのファイル異常(ファイルが無い、ファイルをオープンしないで読み込んだ、レコードが無くなった等)が発生すると、FSTにはCOBOLで決められた値が自動的に入ります。

このプログラムこそがCOBOLプログラムの原点といえる代物です!絶対に理解しましょう!

 IDENTIFICATION             DIVISION.
 PROGRAM-ID.                LST001.
 ENVIRONMENT                DIVISION.
 INPUT-OUTPUT               SECTION.
 FILE-CONTROL.
     SELECT  F1  ASSIGN  TO  "C:\COBOL\LST001.CBL"  STATUS  FST.
 DATA                       DIVISION.
 FILE                       SECTION.
 FD  F1.
 01  F1R                    PIC X(72).
 WORKING-STORAGE            SECTION.
 01  FST                    PIC X(02).
 PROCEDURE                  DIVISION.
     OPEN  INPUT  F1
     PERFORM  UNTIL  FST  NOT  =  "00"
         READ  F1
             END
                CONTINUE
             NOT END
                DISPLAY  F1R
         END-READ
     END-PERFORM
     CLOSE  F1
     STOP RUN.

<< Back    Index    Next >>   < Top >