COBOL言語の関数「DISPLAY(NATIONAL)-OF」について理解しよう!|用語辞典
COBOL(コボル)言語の予約語DISPLAY-OF、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の全角文字に対応する半角英数字
使用例:
実行結果:
書き方(NATIONAL-OF関数):
FUNCTION NATIONAL-OF(引数1 [引数2])
- 引数1:全角にしたい半角文字を指定します。
- 引数2:指定した引数1に対応する全角文字がない場合の値を指定します。
- 戻り値:引数1の半角英数字に対応する全角文字
使用例:
実行結果:
DISPLAY-OF、NATIONAL-OF関数のCOBOL(コボル)言語における基本事項やルールについて
- 「FUNCTION DISPLAY-OF(NATIONAL-OF)」の間の空白や改行は、自由に設定できます。
- 組込み関数の前には予約語「FUNCTION」を指定する必要があります。
- 引数は複数文字指定する事はできません。(全角文字、半角文字1つだけです)
- [引数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):
- IDENTIFICATION DIVISION.
- PROGRAM-ID. DISPLAY-OF_SAMPLE01.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 SAMPLE-DATA.
- 03 ZENKAKU PIC N(10).
- 03 HANKAKU PIC X(5).
- PROCEDURE DIVISION.
- *>----------------------------------------------------
- *> コンソールに入力
- *>----------------------------------------------------
- DISPLAY "全角文字を入力してください。>> " WITH NO ADVANCING.
- ACCEPT ZENKAKU FROM CONSOLE.
- *>----------------------------------------------------
- *> 全角文字を半角文字に変換する
- *>----------------------------------------------------
- MOVE FUNCTION DISPLAY-OF(ZENKAKU) TO HANKAKU.
- DISPLAY "半角文字は:" HANKAKU.
- STOP RUN.
実行結果(DISPLAY-OF):
サンプルプログラム(NATIONAL-OF):
- IDENTIFICATION DIVISION.
- PROGRAM-ID. NATIONAL-OF_SAMPLE01.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 SAMPLE-DATA.
- 03 ZENKAKU PIC N(10).
- 03 HANKAKU PIC X(5).
- PROCEDURE DIVISION.
- *>----------------------------------------------------
- *> コンソールに入力
- *>----------------------------------------------------
- DISPLAY "半角文字を入力してください。>> " WITH NO ADVANCING.
- ACCEPT HANKAKU FROM CONSOLE.
- *>----------------------------------------------------
- *> 半角文字を全角文字に変換する
- *>----------------------------------------------------
- MOVE FUNCTION NATIONAL-OF(HANKAKU) TO ZENKAKU.
- DISPLAY "全角文字は:" ZENKAKU.
- STOP RUN.
実行結果(NATIONAL-OF):
今回ご紹介したDISPLAY-OF、NATIONAL-OFのサンプルプログラムは、ACCEPT文で画面から入力した文字を引数に指定して、それぞれ全角文字、半角文字を求めています。これらの関数を利用すれば、全角文字、半角文字など混在したデータを扱う場合にも、統一したデータ形式で扱う事ができるため大変便利です。COBOL2002から使用できるCOBOLとしては比較的新しい組込み関数ではありますが、このような有効な関数は、普段作成するプログラムでもしっかり活用していきましょう。
この記事を読んだ人は、こちらの記事も読んでいます
【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集
COBOL入門のカテゴリー