COBOL言語の関数「DISPLAY(NATIONAL)-OF」について理解しよう! | 用語辞典

COBOL(コボル)言語の予約語DISPLAY-OF、NATIONAL-OFを使った全角文字、半角文字の変換とは

辞典・辞書-DISPLAY(NATIONAL)-OF-イメージ

COBOL(コボル)言語のDISPLAY-OF、NATIONAL-OF関数とは?

COBOL(コボル)の組込み関数であるDISPLAY-OF、NATIONAL-OF関数は、指定した文字列に対して半角や全角変換したい場合に使用します。DISPLAY-OF関数は指定した全角文字(日本語など)を半角文字に、NATIONAL-OF関数は指定した半角文字を全角文字(日本語など)にして値を返します。

書き方(DISPLAY-OF関数):

FUNCTION DISPLAY-OF(引数1 [引数2])

  • 引数1:半角にしたい全角文字を指定します。
  • 引数2:指定した引数1に対応する半角英数字がない場合の値を指定します。
  • 戻り値:引数1の全角文字に対応する半角英数字

使用例:

辞典・辞書-DISPLAY(NATIONAL)-OF-使用例

実行結果:

辞典・辞書-DISPLAY(NATIONAL)-OF-実行結果

書き方(NATIONAL-OF関数):

FUNCTION NATIONAL-OF(引数1 [引数2])

  • 引数1:全角にしたい半角文字を指定します。
  • 引数2:指定した引数1に対応する全角文字がない場合の値を指定します。
  • 戻り値:引数1の半角英数字に対応する全角文字

使用例:

辞典・辞書-DISPLAY(NATIONAL)-OF-使用例

実行結果:

辞典・辞書-DISPLAY(NATIONAL)-OF-実行結果

DISPLAY-OF、NATIONAL-OF関数のCOBOL(コボル)言語における基本事項やルールについて

  1. 「FUNCTION DISPLAY-OF(NATIONAL-OF)」の間の空白や改行は、自由に設定できます。
  2. 組込み関数の前には予約語「FUNCTION」を指定する必要があります。
  3. 引数は複数文字指定する事はできません。(全角文字、半角文字1つだけです)
  4. [引数2]は指定した引数1に対応する値がない場合の値を指定しますが、省略する事もできます。

COBOL(コボル)言語のDISPLAY-OF、NATIONAL-OF関数を扱う上での注意点

DISPLAY-OF、NATIONAL-OF関数は、第4次COBOL規格(以下、COBOL2002)より新たに使用できるようになった組込み関数です。COBOL2002 は、1985年に制定された第3次COBOL規格の仕様は包含、互換性を維持しながら作成されていますが、逆に第3次COBOL規格の処理系をお使いの方は、使用する事ができませんので注意が必要です。(詳細はご使用の環境のマニュアル等をご確認ください)

DISPLAY-OF、NATIONAL-OF関数を使ったCOBOL(コボル)プログラムの活用法

DISPLAY-OF、NATIONAL-OF関数は、全角半角文字が混在するデータをどちらかの文字列に揃えたい場合などに非常に便利です。ここでは、活用法としてACCEPT文で画面入力した値を取得し、全角文字、半角文字を求める簡単なプログラムを紹介します。

サンプルプログラム(DISPLAY-OF):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. DISPLAY-OF_SAMPLE01.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 SAMPLE-DATA.
  8. 03 ZENKAKU PIC N(10).
  9. 03 HANKAKU PIC X(5).
  10.  
  11. PROCEDURE DIVISION.
  12. *>----------------------------------------------------
  13. *> コンソールに入力
  14. *>----------------------------------------------------
  15. DISPLAY "全角文字を入力してください。>> " WITH NO ADVANCING.
  16. ACCEPT ZENKAKU FROM CONSOLE.
  17.  
  18. *>----------------------------------------------------
  19. *> 全角文字を半角文字に変換する
  20. *>----------------------------------------------------
  21. MOVE FUNCTION DISPLAY-OF(ZENKAKU) TO HANKAKU.
  22. DISPLAY "半角文字は:" HANKAKU.
  23.  
  24. STOP RUN.

実行結果(DISPLAY-OF):

辞典・辞書-DISPLAY(NATIONAL)-OF-実行結果

サンプルプログラム(NATIONAL-OF):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. NATIONAL-OF_SAMPLE01.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 SAMPLE-DATA.
  8. 03 ZENKAKU PIC N(10).
  9. 03 HANKAKU PIC X(5).
  10.  
  11. PROCEDURE DIVISION.
  12. *>----------------------------------------------------
  13. *> コンソールに入力
  14. *>----------------------------------------------------
  15. DISPLAY "半角文字を入力してください。>> " WITH NO ADVANCING.
  16. ACCEPT HANKAKU FROM CONSOLE.
  17.  
  18. *>----------------------------------------------------
  19. *> 半角文字を全角文字に変換する
  20. *>----------------------------------------------------
  21. MOVE FUNCTION NATIONAL-OF(HANKAKU) TO ZENKAKU.
  22. DISPLAY "全角文字は:" ZENKAKU.
  23.  
  24. STOP RUN.

実行結果(NATIONAL-OF):

辞典・辞書-DISPLAY(NATIONAL)-OF-実行結果

今回ご紹介したDISPLAY-OF、NATIONAL-OFのサンプルプログラムは、ACCEPT文で画面から入力した文字を引数に指定して、それぞれ全角文字、半角文字を求めています。これらの関数を利用すれば、全角文字、半角文字など混在したデータを扱う場合にも、統一したデータ形式で扱う事ができるため大変便利です。COBOL2002から使用できるCOBOLとしては比較的新しい組込み関数ではありますが、このような有効な関数は、普段作成するプログラムでもしっかり活用していきましょう。

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

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

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

COBOL入門のカテゴリー

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