-JPN,Alnumオプションは,日本語項目,日本語編集項目を英数字項目,英数字編集項目として扱う。例えば,PIC N(5)は,PIC X(10)とみなされる。-JPN,Alnumオプションの指定によって日本語の扱いが異なる例を次に示す。
- (例1)日本語項目と英数字項目間の転記の相違
MOVE 英数字項目 TO 日本語項目.
- -JPN,Alnumオプション指定時:
英数字項目間の転記の規則に従って転記される。受け取り側作用対象の方が長い場合は,転記が終わった位置より右側の文字位置に半角の空白(X'20')が埋められる。
- -JPN,Alnumオプション未指定時:
日本語項目同士の転記でないためコンパイルエラーとなる。
- (例2)空白の転記
01 日本語項目 PIC N(5).
MOVE SPACE TO 日本語項目.
- -JPN,Alnumオプション指定時:
半角の空白(X'20')が転記される。
- -JPN,Alnumオプション未指定時:
全角の空白(X'8140')が転記される。
- (例3)日本語項目に対するVALUE句
01 日本語項目 PIC N(2) VALUE '漢字'.
01 日本語項目 PIC N(2) VALUE ZERO.
- -JPN,Alnumオプション指定時:
日本語直接定数,英数字定数,表意定数のどれを指定してもエラーにならない。なお,英数字定数,表意定数(SPACE(S)以外)はメインフレーム(VOS3)のCOBOLでは指定できないため,日本語直接定数と表意定数のSPACE(S)だけを使用した方が良い。
- -JPN,Alnumオプション未指定時:
日本語直接定数または表意定数のSPACE(S)でなければならない。したがって,(例3)はコンパイルエラーとなる。
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 9.16.88 VALUE句
- (例4)部分参照での相違
01 NIHONGO PIC N(10) VALUE N'1234567890'.
- -JPN,Alnumオプション指定時:
NIHONGO(3 : 4)は,N'23'となる。
- -JPN,Alnumオプション未指定時:
NIHONGO(3 : 4)は,N'3456'となる。
- (例5)INSPECT文での相違
- 次のコード表現の場合の例を示す。
- N'モ'=X'8382'
- N'÷'=X'8180'
- N'a'=X'8281'
- N'亜'=X'889F'
:
01 NIHONGO PIC N(3) VALUE N'モ÷a'.
01 I PIC S9(9) COMP VALUE +0.
:
INSPECT NIHONGO TALLYING I FOR ALL N'a'
REPLACING ALL N'a' BY N'亜'.
:
- -JPN,Alnumオプション指定時:
Iは,2となる。
NIHONGOは,X'83889F80889F'となる。
- -JPN,Alnumオプション未指定時:
Iは,1となる。
NIHONGOは,N'モ÷亜'となる。
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 10.8.25 INSPECT文
- (例6)STRING文での相違
:
01 NIHONGO0 PIC N(6) VALUE ALL N'0'.
01 NIHONGO1 PIC N(2) VALUE ALL N'1'.
01 NIHONGO2 PIC N(2) VALUE ALL N'2'.
01 PTR PIC S9(9) COMP VALUE +3.
:
STRING NIHONGO1 DELIMITED BY SIZE
NIHONGO2 DELIMITED BY SIZE
INTO NIHONGO0 WITH POINTER PTR.
:
- -JPN,Alnumオプション指定時:
NIHONGO0は,N'011220'となる。
- -JPN,Alnumオプション未指定時:
NIHONGO0は,N'001122'となる。
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 10.8.47 STRING文
- (例7)UNSTRING文での相違
- 次のコード表現の場合の例を示す。
- N'モ'=X'8382'
- N'÷'=X'8180'
- N'a'=X'8281'
:
01 NIHONGO1 PIC N(5) VALUE N'モモ÷a÷'.
01 NIHONGO2 PIC N(3).
:
UNSTRING NIHONGO1 DELIMITED BY ALL N'a'
INTO NIHONGO2 .
:
- -JPN,Alnumオプション指定時:
NIHONGO2は,X'838283202020'となる。
- -JPN,Alnumオプション未指定時:
NIHONGO2は,N'モモ÷'となる。
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 10.8.52 UNSTRING文
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.