COBOL入門 Mission2-5 ファイル出力

処 理 内 容 PROGRAM-ID 難易度 言語
カウントと時間をファイルに書き出す CNT005 1COBOL
1:処理図
2:処理概要

カウントを1〜100まで数えながら、カウント値とその時々の時間を外部フォーマットの様式でディスクに書き出す。また同じものを画面にも表示する
3:ファイル名称
I-O
外部ファイル名 編成 KP/KL RL/BF access
(1)カウントデータ out C:\dat\c005.dat seq  /  13/1
4:外部フォーマット定義(画面・書式等)

     03 F1-CNT PIC 9(4). *>カウンタ値
     03        PIC X(1). *>空白
     03 F1-HH  PIC 9(2). *>所要時間(時)
     03        PIC X(1). *>空白
     03 F1-MM  PIC 9(2). *>所要時間(分)
     03        PIC X(1). *>空白
     03 F1-SS  PIC 9(2). *>所要時間(秒)
このような出力になるよう、プログラムを作成して下さい。
5:その他

☆ファイルのOPEN・CLOSE命令 [ OPEN/CLOSE ]

     OPEN  INPUT  入力ファイル名 (ファイルを読み込む場合には必須)
     OPEN OUTPUT 出力ファイル名 (ファイルを出力する場合には必須)

     CLOSE  ファイル名1 ファイル名2 … (利用したファイルを全て閉じます)
 IDENTIFICATION        DIVISION.
 PROGRAM-ID.           CNT005.
 ENVIRONMENT           DIVISION. *>環境部の宣言文
 INPUT-OUTPUT          SECTION.  *>入出力節の宣言文
 FILE-CONTROL.                   *>ファイル管理段落の宣言文
     SELECT  F1  ASSIGN  TO  "C:\dat\c005.dat".  *>利用ファイルの詳細
 DATA                  DIVISION.
 FILE                  SECTION.  *>ファイル節の宣言文
 FD  F1.
 01  F1R.
     03  F1-CNT        PIC 9(04).
     03                PIC X(01).
     03  F1-HH         PIC 9(02).
     03                PIC X(01).
     03  F1-MM         PIC 9(02).
     03                PIC X(01).
     03  F1-SS         PIC 9(02).
 WORKING-STORAGE       SECTION.
 01  CNT               PIC 9(04) VALUE 0.
 01  WTIME.
     03  HH            PIC 9(02).
     03  MM            PIC 9(02).
     03  SS            PIC 9(02).
 PROCEDURE             DIVISION.
    OPEN  OUTPUT  F1  *>ファイルを利用する場合は必ずOpenする!
    PERFORM  UNTIL  CNT  =  100
        ADD  1  TO  CNT
        ACCEPT WTIME  FROM  TIME
        MOVE   SPACE  TO    F1R
        MOVE   CNT    TO    F1-CNT
        MOVE   HH     TO    F1-HH
        MOVE   MM     TO    F1-MM
        MOVE   SS     TO    F1-SS
        WRITE  F1R
        DISPLAY  F1R
    END-PERFORM
    DISPLAY "<<< CNT005-ENDED>>>"
    CLOSE  F1
    STOP RUN.

ENVIRONMENT DIVISON 環境部について

2番目の部として環境部があります(上記プログラム参照)。この部ではプログラムで使用するコンピュータ名や利用するファイル、磁気テープやプリンタなどを指定します。入力や出力などの外部媒体(ファイルやプリンタ)を利用しないプログラムの場合は、省略して構いません。実務上、ファイルやプリンタを利用しないプログラムは皆無に等しいでしょう。特にファイルの記述は初心者にはやや難解に感じます。習うより慣れろ、さあ頑張って学習して下さい

※前画面に戻る場合は、[Back space]キーが便利です  ▼メニューにジャンプ

INPUT-OUTPUT SECTION 入出力節について

環境部の中で一番注目すべきSECTION(節)はココ。利用ファイルの記述は全てココに書かなければいけません。

 FILE-CONTROL.

この記述のように、A領域(2カラムから6カラム内)から始まりピリオドで終わる行を『段落』と言います。FILE-CONTROLは、ファイル管理段落と呼ばれ、利用するファイル管理記述を始めますよという宣言文です。COBOL言語ではファイルを扱う場合、必須になっています。(※I-O-CONTROLという段落もありますがここでは割愛します)
この宣言文の後に、利用ファイルの記述を行ないます。式は以下の通りです。

     SELECT  プログラム内でのファイル名 ASSIGN  TO  機番名.(実ファイル名)

SELECT句と呼んでいますが、この文で実際に利用するファイルをプログラム上のファイルにASSIGN(割り当て)します。わかり易く言えば、

     SELECT  ドカベン  ASSIGN  TO  山田.

「山田」という名の生徒(ファイル)を、クラス(プログラム)の仲間は「ドカベン」というアダ名で呼びますよ、という意味合いです。

※前画面に戻る場合は、[Back space]キーが便利です  ▼メニューにジャンプ

FILE SECTION ファイル節について

この節はデータ部に書く記述項目です。環境部でファイルの利用を宣言した場合には必ず記述しなければいけません。ココでは具体的にファイルの項目定義をします。

 FD  ファイル名.

この記述をFD句と呼びA領域から記述を始めます。利用するファイルの詳細が記述できます。BLOCK CONTAINS(ブロックの大きさ)句,DATA RECORDS(データレコード)句,LABEL RECORDS(ラベルレコード)句,LINAGE(行数)句などなど。詳しい説明は予約語を参照下さい。難しく考えず、ファイルを利用する時は、使用ファイルの詳細を記述する必要があるとだけ覚えておきましょう。

FD句に続いて実ファイル項目(レコード)の詳細を記述します。この部分は作業領域節で解説した内容と全く同じです。

※前画面に戻る場合は、[Back space]キーが便利です  ▼メニューにジャンプ

FILE SECTION と WORKING-STORAGE SECTION の違い

FILE SECTION と WORKING-STORAGE SECTION は記述される内容が似ているのですが、ここで一度おさらいしてみましょう。FILE SECTIONには、あくまで入出力ファイルを利用する場合、各ファイル項目を記述する場所です。もう一方のWORKING-STORAGE SECTIONは、そのプログラム内で利用する項目(変数や定数)を記述する場所です。間違えないように注意して覚えましょう。

※前画面に戻る場合は、[Back space]キーが便利です  ▼メニューにジャンプ

<< Back    Index    Next >>   < Top >