「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. |