Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


国別文字形象定数の使用

国別文字を必要とするコンテキストでは、形象定数の ALL national-literal を使用できます。 ALL 国別リテラル は、国別リテラルを構成する連続したエンコード・ユニットの連結によって生成される、ストリングの全部または一部を表します。

国別文字を必要とするコンテキスト (MOVE ステートメント、暗黙移動、または、国別オペランドを持つ比較条件など) では、形象定数 QUOTESPACEHIGH-VALUELOW-VALUEまたは ZERO を使用できます。 こうしたコンテキストでは、形象定数は国別文字 (UTF-16) 値を表します。

国別文字を必要とするコンテキストで形象定数 HIGH-VALUE を使用すると、その値は NX'FFFF' です。 国別文字を必要とするコンテキストで LOW-VALUE を使用すると、その値は NX'0000' です。

制約事項: HIGH-VALUE または HIGH-VALUE から割り当てられた値は、あるデータ表現から別のデータ表現への値の変換 (例えば、USAGE DISPLAYUSAGE NATIONAL の間の変換) が起こるような仕方で使用してはなりません。 X'FF' (EBCDIC 照合シーケンスが使用されているときの、英数字コンテキストでの HIGH-VALUE の値) は有効な EBCDIC 文字を表しませんし、NX'FFFF' は有効な国別文字を表しません。 このような値を別の表現に変換すると、置換文字が使用されることになります (X'FF' でも NX'FFFF' でもなくなります)。 次の例を見てください。

01 natl-data  PIC NN  Usage National.
01 alph-data  PIC XX.
. . .
    MOVE HIGH-VALUE TO natl-data, alph-data
    IF natl-data = alph-data. . .

上の IF ステートメントは、オペランドのそれぞれが HIGH-VALUE に設定された場合であっても、偽と評価されます。 基本英数字オペランドが国別オペランドと比較される前に、英数字オペランドは、一時国別データ項目に移動させられたかのように扱われ、英数字文字は対応する国別文字に変換されます。 しかし、X'FF' が UTF-16 に変換される場合、UTF-16 項目は置換文字値を取得するので、NX'FFFF' と比較して等しいとはみなされません。

関連参照  
形象定数 (Enterprise COBOL 言語解説書)
DISPLAY-OF (「Enterprise COBOL 言語解説書」)Support for Unicode: Using Unicode Services


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)