COBOL基本文法1

「ACCEPT/DISPLAY」(小入力/小出力)


●ACCEPT●

少量のデータをハードウェア装置(CONSOLE又はSYSIN)から

入力したり、年月日や曜日、時刻を取得する命令です。

----------------------------------------------------------

下のサンプルソースでは、現在のシステム日付と時刻を取得するのに

ACCEPT  データ名 FROM DATE(DAY/DAY-OF-WEEK/TIME)

のかたちで使用しています。FROM の後で指定した

DATE(年月日)、DAY(年日)、DAY-OF-WEEK(曜日)、TIME(時刻)

  のいずれかのデータが指定したデータ名の項目に格納されます。

●DISPLAY●

少量のデータをハードウェア装置に出力する命令です。

----------------------------------------------------------

下のサンプルソースでは、ACCEPTで取得した日付と時刻が

格納されたデータ項目(WK-YYMMDD,HHMMSSSS)を

見やすいかたちに編集して、表示させようとしています。

DISPLAY  "表示したい言葉"

で、タイトルや注など好きな言葉をそのまま表示することができます。

DISPLAY  データ名

で指定したデータ名に格納されているデータを表示することができます。

また、サンプルソースで使われている(1:3)などの意味は

「そのデータ項目の1桁目から3桁分」ということです。

(注:DISPLAYに限った話ではありません)

例えば「データ名A」に「ABCDE」という文字が格納されているとしましょう。

この場合に「データ名A(2:3)」と記述すると「データ名Aの2桁目から3桁分」

ということで、「BCD」だけが対象ということになります。

ちょっと高度な使い方ですが、知っておくとなかなか便利です。

●その他●

PIC句にはデータの属性と桁数、初期値を記述します。

文字属性はX、

数字属性は9(符号付きだとS9です)、

全角文字属性はN

といった感じです。

初期値を設定するときには、VALUE句を使います。

-----------------------------------------------------------

PROGRAM-STATUSには、そのプログラムが正常終了したか

異常終了したかを設定します。プログラムの起動元である

バッチ(またはシェル)はそれを元に処理の流れを変更します。

----------------------------------------------------------

STOP RUNで、プログラムを終了させます。

プログラム自体は処理を続行していて、

SECTIONの処理だけを終えるときはEXITを使います。

●サンプルソース●

000010******************************************************************
000020*                                              
000030* COBOL 練習用プログラム                             
000040* PROGRAM-ID:ACCEPT1(ACCEPT/DISPLAY練習)              
000050* 作成日:2001-02-10                                 
000051* 作成者:プー                                     
000052* 機能概要:                                       
000060* 日付と時刻を取得し、画面に表示する。                     
000070*                                              
000080******************************************************************
000090 IDENTIFICATION    DIVISION.
000100 PROGRAM-ID.         ACCEPT1.
000110 AUTHOR.            PU.
000120 DATE-WRITTEN.       2001.02.10.
000130*
000140 ENVIRONMENT DIVISION.
000150*
000220 DATA    DIVISION.
000480******************************************************************
000490* ワーク領域定義
000500******************************************************************
000510 WORKING-STORAGE    SECTION.
000542*
000640 01 WK-DATE.
000650    03 WK-YYMMDD        PIC 9(06) VALUE ZERO.
000660    03 WK-HHMMSSSS      PIC 9(08) VALUE ZERO.
000670******************************************************************
000680* メイン処理
000690******************************************************************
000700 PROCEDURE     DIVISION.
000710 MAIN   SECTION.
000711 MAIN-STA.
000712*
000713    ACCEPT WK-YYMMDD FROM DATE.
000714    ACCEPT WK-HHMMSSSS FROM TIME.
000715    DISPLAY "DATE-->" WK-YYMMDD(1:2) "-"
000716          WK-YYMMDD(3:2) "-" WK-YYMMDD(5:2) " "
000717          "TIME-->" WK-HHMMSSSS(1:2) ":" WK-HHMMSSSS(3:2)
000718          ":" WK-HHMMSSSS(5:3) "." WK-DATE(14:1).
000760*
000770    MOVE ZERO TO PROGRAM-STATUS.
000790    STOP RUN.
000800 MAIN-END.
000810    EXIT.

プログラミング入門に戻る