24.3.5 日本語項目に対して埋められる空白の扱い(-JPN,V3JPNSpace)
-JPN,V3JPNSpaceオプションと-CompatiV3オプションを同時に指定したとき,日本語集団項目,日本語項目,日本語編集項目,および日本語文字定数をそのままの属性で扱う。これは,メインフレーム(VOS3)COBOL85で,LANGOPT=(D)オプションとXCOBOL=(-N)オプションを同時に指定したときの日本語項目の扱いに合わせるものである。
なお,-JPN,V3JPNSpaceオプションは,VOS3 COBOL85互換機能である。-JPN,V3JPNSpaceオプションについては,マニュアル「COBOL2002 ユーザーズガイド」または「COBOL2002 使用の手引 手引編」を参照のこと。
-JPN,V3JPNSpaceオプションを指定してコンパイルすると,日本語集団項目,日本語項目,および日本語編集項目に対して次の扱いとする。
- 〈この項の構成〉
(1) 表意定数SPACE(SPACES)の扱い
日本語集団項目,日本語項目,および日本語編集項目に対する表意定数SPACE(SPACES)は,日本語空白(X'8140')とする。
- (例1)
01 A1 PIC N(2) VALUE SPACE.
上記のVALUE句によるデータ名A1の内容は,-JPN,V3JPNSpaceオプション指定の有無により,次のとおりとなる。
-JPN,V3JPNSpaceオプション指定あり
-JPN,V3JPNSpaceオプション指定なし
▲▲
△△△△
- (凡例)
-
▲:全角空白(X'8140')
△:半角空白(X'20')
(2) 日本語集団項目,日本語項目,および日本語編集項目同士の転記の扱い
日本語集団項目,日本語項目,および日本語編集項目同士の転記で,受け取り側作用対象のけた数が送り出し側作用対象のけた数より長い場合,受け取り側作用対象の右側に日本語空白(X'8140')を補う。
- (例1)
01 A1 PIC N(2) VALUE N'日立'. 01 B1 PIC N(5). MOVE A1 TO B1.
上記のMOVE文を実行したあとのデータ名B1の結果は,-JPN,V3JPNSpaceオプション指定の有無により,次のとおりとなる。
-JPN,V3JPNSpaceオプション指定あり
-JPN,V3JPNSpaceオプション指定なし
日立▲▲▲
日立△△△△△△
- (凡例)
-
▲:全角空白(X'8140')
△:半角空白(X'20')
(3) 日本語集団項目,日本語項目,および日本語編集項目同士の比較の扱い
日本語集団項目,日本語項目,および日本語編集項目同士の比較で,作用対象のけた数が等しくない場合,短い方の作用対象の右側に,長い方の作用対象のけた数に等しくなるまで日本語空白(X'8140')があるものとみなして比較する。
- (例1)
01 A1 PIC N(2) VALUE N'株式'. : : IF A1 = N'株式会社' THEN DISPLAY N'株式会社です' ELSE DISPLAY N'株式会社ではありません' END-IF.
上記のIF文を実行するときデータ名A1の内容は,-JPN,V3JPNSpaceオプション指定の有無により,次のとおりとなる。
-JPN,V3JPNSpaceオプション指定あり
-JPN,V3JPNSpaceオプション指定なし
株式▲▲
株式△△△△
- (凡例)
-
▲:全角空白(X'8140')
△:半角空白(X'20')
なお,-JPN,V3JPNSpaceオプション指定による日本語項目の扱いは,LANGOPT=(D)オプション指定時のすべての仕様と同じにするものではない。VOS3 COBOL85でLANGOPT=(D)オプションを指定した場合と,COBOL2002で-JPN,V3JPNSpaceオプションを指定した場合の仕様の相違点については,「付録B LANGOPT=(D)オプションと-JPN,V3JPNSpaceオプションを指定した場合の仕様の相違」を参照のこと。