COBOL言語の「JUST句」で特殊な転記方法を学ぼう! | 用語辞典

COBOL(コボル)言語の予約語JUSTを使ったデータ項目の編集とは

辞典・辞書-JUST-イメージ

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

COBOLのJUST句は、JUSTIFIED句と同じ機能を持ち、JUSTIFIEDの省略形になります。

JUSTIFIED(英語)は、日本語に訳すると「もっともなこと」という形容詞です。

COBOL(コボル)言語のJUST(JUSTIFIED)句は、通常の桁寄せを異なるかたちの桁寄せにする役目を持っています。つまり、JUST句は通常とは異なる桁寄せを「もっともなことである」として許可するのです。

JUST句の形式

JUST句は、データ項目の桁寄せを通常とは異なる桁寄せにすることを許可します。

■書式

 レベル番号 データ項目名 PIC データ形式 JUST RIGTH

■構文規則

 <レベル番号>

  データ項目のレベル番号を記述します。レベル番号は66と88を除く、01から49、および77を使用することができます。

 <データ項目名>

  データ項目名を記述します。

 <データ形式>

  データ項目のデータ形式を記述します。

■使用例

 データ項目にJUST句を指定したプログラム例をご紹介します。

 サンプルプログラムは、JUST句を指定したPIC X(8)のデータ項目と、JUST句を指定しないデータ項目に、10桁の文字を移送した結果をコンソールに表示するプログラムです。

辞典・辞書-JUST-使用例

12行目では移送元となる10桁のデータ項目を定義し、13行目で移送先となる8桁のJUST句指定なしのデータ項目を、14行目で移送先となる8桁のJUST句指定ありのデータ項目を定義しています。

■実行結果

辞典・辞書-JUST-実行結果

同じ「△△みかん△△」という文字を移送しても、JUST句を指定したデータ項目では右詰になり「みかん△△」、JUST句を指定しないデータ項目では左詰めになり「△△みかん」となりました。

このように、JUST句を指定することにより、通常とは異なる桁寄せができることをご理解いただけると思います。

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

JUSTはJUSTIFIEDの省略形で、基本項目だけに使用できる標準的でない桁寄せ指定です。数字項目または編集を指定した項目には、JUST句は指定できません。

■JUST句を指定しない場合の標準桁寄せ規則

JUST句を指定しない場合、桁寄せは受け取り側のデータ項目の種類によってかわります。COBOLの桁寄せは、文字は左詰め、数字は右詰が基本ですが、小数点のありなしによっても変化します。

受け取り側のデータ項目の種類

標準桁寄せ規則

数字データ項目

小数点の位置に合わせて格納される。必要に応じてゼロが補われたり、切り捨てられたりする。

数字編集データ項目

小数点の位置に合わせて格納する。必要に応じてゼロが補われたり、切り捨てられたりする。

英数字、英数字編集、
英字データ項目

左側を揃えて格納される。必要に応じて、右端に空白が補われたり、右端が切り捨てられたりする。

外部浮動小数点データ項目

左端の文字位置にそろえられる。文字位置に応じて、指数部が調整される。

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

受取り側のデータ項目にJUST句が指定してあり、送出し側データ項目の方が受取り側データ項目よりも大きい場合、左端の文字が切り捨てられ、受取り側データ項目の方が送出し側データ項目よりも大きい場合、データは右端に揃えられ左端には空白が詰められます。

たとえば、PIC X(4)のデータ項目があり、その値が"A△△△" であるとします。これを、JUST句が指定してあるPIC X(6)のデータ項目に移送すると、結果は"△△A△△△"になります。同じデータ項目をJUST句が指定してあるPIC X(3)のデータ項目に移送すると、左端の文字が切り落とされて、結果は" △△△"になります。

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

「COBOL(コボル)言語のJUST句とは?」でご紹介したサンプルプログラムは、受け取り側よりも送り出し側が大きくなっていましたので、ここでは受け取り側よりも送り出し側が小さい場合を追加し、実行結果を見てみましょう。

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. JUST-SUMPLE2.
  9. DATA DIVISION.
  10. WORKING-STORAGE SECTION.
  11. 01 WORKING-AREA.
  12. 03 HINMEI1 PIC X(10) VALUE " みかん ".
  13. 03 HINMEI2 PIC X(08).
  14. 03 HINMEI3 PIC X(08) JUST RIGHT.
  15. 03 HINMEI4 PIC X(08).
  16. 03 HINMEI5 PIC X(08) JUST RIGHT.
  17.  
  18. *-------------------------------------------
  19. * 主手続
  20. *-------------------------------------------
  21. PROCEDURE DIVISION.
  22. MAIN-PROCEDURE.
  23. MOVE HINMEI1 TO HINMEI2.
  24. MOVE HINMEI1 TO HINMEI3.
  25. MOVE "みかん" TO HINMEI4.
  26. MOVE "みかん" TO HINMEI5.
  27.  
  28. DISPLAY "移送結果は"
  29. DISPLAY HINMEI2.
  30. DISPLAY HINMEI3.
  31. DISPLAY HINMEI4.
  32. DISPLAY HINMEI5.
  33. DISPLAY "です。".
  34.  
  35. END-PROC.
  36. STOP RUN.
  37. END PROGRAM JUST-SUMPLE2.

■実行結果

辞典・辞書-JUST-実行結果

 同じ「みかん」という文字を移送しても、JUST句を指定したデータ項目では左側にスペースが補われ「△△みかん」、JUST句を指定しないデータ項目では右側にスペースが補われ「みかん△△」となりました。

JUST句はあまり利用の機会がない句かもしれませんが、桁寄せの機能を覚えておくと役に立つこともありますので、知識として頭に入れておくといいでしょう。

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

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

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

COBOL入門のカテゴリー

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