24.3.6 日本語項目の扱い(-JPN,Alnum)
-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文」