COBOL言語の「CRT STATUS句」について知ろう!使い方とは | 用語辞典

COBOL(コボル)言語の予約語CRT STATUSを使ったACCEPT命令の実行状態の取得とは

辞典・辞書-CRT-STATUS-イメージ

COBOL(コボル)言語のCRT STATUS句とは?

CRTは画面、STATUSは状態という意味です。COBOL(コボル)言語のCRT STATUS句には、ACCEPT命令の実行状態を格納するデータ項目を指定する機能があります。

CRT STATUS句の形式

CRT STATUS句を指定すると、ACCEPT命令を実行したときの実行状態を取得することができます。

■書式

 CRT STATUS IS データ項目名

■構文規則

<データ項目名>

ACCEPT命令の実行結果を格納するデータ項目名を指定します。データ項目は基本数字データ項目、または集団項目でなくてはなりません。

■使用例

CRT STATUS句を使用し、ACCEPT命令の実行結果を表示するプログラム例をご紹介します。

このプログラムは、コンソールにエンターキーの入力を促すメッセージを表示したのち、ACCEPT命令が実行されると、その実行結果を表示するプログラムです。

辞典・辞書-CRT-STATUS-使用例

■実行結果

はじめにエンターキーの入力を促すメッセージが表示されます。

辞典・辞書-CRT-STATUS-実行結果

エンターキーを押してみます。

辞典・辞書-CRT-STATUS-入力例

ACCEPT命令の実行状態の「0000」が表示され、プログラムが終了しました。

CRT STATUS句のCOBOL(コボル)言語における基本事項やルールについて

CRT STATUS句は、ACCEPT命令の実行状態を格納するデータ項目を指定する句で、ENVIRONMENT DIVISIONの CONFIGURATION SECTIONの SPECIAL-NAMESに記述します。

CRT STATUS句で指定するデータ項目は、基本数字データ項目、または集団項目になります。

■CRT STATUS句によって得られるCRT状態の値

CRT STATUS句で指定したデータ項目が数値データ項目の場合、ACCEPT文で指定するCONTROL KEYによって返却される値が設定されます。

CRT STATUS句で指定したデータ項目が集団項目の場合は、最初の1文字目のCRT状態キー1と、2文字のCRT状態キー2には、以下の表の値が設定され、3文字目のCRT状態キー3には0から255まで値が設定されます。CRT状態キー3の値は、ACCEPT文で指定するCONTROL KEYによって返却される値と同じです。

CRT状態キー1

CRT状態キー2

CRT状態

0

0

終了キーが押された

0

1

-2の31乗~2の31乗-1
(-2,147,484,648~2,147,484,647)

1

00 ~ FF(16進)

例外キーが押された

2

00(16進)

ファイル終了キーが押された

3

00(16進)

ACCEPT文のタイムアウト

9

00(16進)

画面中に一致する項目がない

COBOL(コボル)言語のCRT STATUS句を使うときの注意点

CRT STATUS句で指定するCRT状態を格納するデータ項目のCRT状態キー2は、ACCEPT命令の実行状態が正常な場合にはCOBOLの数字データが格納されますが、実行状態が異常な場合には16進数の数値が格納されることに注意してください。

CRT STATUS句を使ったCOBOL(コボル)プログラムの活用方法

CRT STATUS句を使うことによって、ACCEPT命令の実行結果によって処理を分岐させることができます。

では、ACCEPT命令の実行結果が正常ならば、入力された商品番号に該当する商品名を表示し、ACCEPT命令の実行結果が異常ならば、エラーメッセージを表示するプログラム例をご紹介します。

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. CRT-STATUS-SAMPLE2.
  9.  
  10. ENVIRONMENT DIVISION.
  11. CONFIGURATION SECTION.
  12. SPECIAL-NAMES.
  13. CURSOR IS CURSOR-POSITION
  14. CRT STATUS IS CRT-DATA.
  15.  
  16. DATA DIVISION.
  17. WORKING-STORAGE SECTION.
  18. 01 CURSOR-POSITION PIC X(6).
  19. 01 CRT-DATA PIC 9(4).
  20. 01 WARNING PIC X(40)
  21. VALUE "商品番号を入力してください 1 or 2 ".
  22. 01 INPUT-RESULT PIC X(1).
  23. 01 OUTPUT-RESULT PIC X(10).
  24.  
  25. SCREEN SECTION.
  26. 01 CONSOLE-SCREEN
  27. LINE 12 COLUMN 20.
  28. 05 WARNING-STRING PIC X(40)
  29. FROM WARNING.
  30. 05 INPUT-RESULT-SCREEN
  31. LINE 14 COLUMN 30 PIC X(1)
  32. TO INPUT-RESULT.
  33. 05 OUTPUT-RESULT-SCREEN
  34. LINE 14 COLUMN 38 PIC X(10)
  35. FROM OUTPUT-RESULT.
  36.  
  37. *-------------------------------------------
  38. * 主手続
  39. *-------------------------------------------
  40. PROCEDURE DIVISION.
  41. MOVE "014037" TO CURSOR-POSITION.
  42. ACCEPT CONSOLE-SCREEN.
  43.  
  44. IF CRT-DATA = 0 THEN
  45. DISPLAY "正常入力されました" AT LINE 16 COLUMN 38
  46. ELSE
  47. DISPLAY "エラーが発生しました" AT LINE 16 COLUMN 38
  48. GO TO END-PROC
  49. END-IF.
  50.  
  51. IF INPUT-RESULT = 1 THEN
  52. MOVE "バナナ" TO OUTPUT-RESULT
  53. ELSE IF INPUT-RESULT = 2 THEN
  54. MOVE "メロン" TO OUTPUT-RESULT
  55. END-IF
  56. END-IF.
  57.  
  58. DISPLAY CONSOLE-SCREEN.
  59.  
  60. END-PROC.
  61. STOP-RUN.
  62. END PROGRAM CRT-STATUS-SAMPLE2.

■実行結果

はじめに商品番号入力を促すメッセージが表示されます。

辞典・辞書-CRT-STATUS-実行結果

数字の1を入力してみます。

辞典・辞書-CRT-STATUS-入力例

商品名「バナナ」と正常入力のメッセージが表示され、プログラムが終了しました。

※サンプルプログラムの実行環境は、cobc(GunCOBOL)2.0.0です。実行環境の違いによっては、実行結果が異なる場合があります。

COBOL言語において、CRT STATUS句の使い方の習得は必須ではありませんが、使用できると画面処理の幅が広がります。もし、習得していない場合には、これを機会に習得してみてはいかがでしょうか。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門