Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


国別の比較

国別比較は、国別クラスの 2 つのオペランドの国別文字値の比較です。

比較条件が国別クラスではないオペランドを指定しているときは、比較の前にそのオペランドが国別カテゴリーのデータ項目へ変換されます。以下のリストで、オペランドの国別カテゴリーへの変換について説明します。

DBCS
DBCS オペランドは、DBCS オペランドと同じ長さの国別カテゴリーの一時データ項目へ移動されるかのように処理されます。 DBCS 文字は、対応する国別文字に変換されます。変換で使用されるソース・コード・ページは、 ソース・コードのコンパイル時に CODEPAGE コンパイラー・オプションに対して有効だったコード・ページです。
USAGE DISPLAY の英字、英数字、英数字編集、および数字編集
オペランドは、そのオペランド内の文字位置数を表すために必要な長さの国別カテゴリーの一時データ項目へ移動されるかのように処理されます。英数字は、対応する国別文字に変換されます。変換で使用されるソース・コード・ページは、 ソース・コードのコンパイル時に CODEPAGE コンパイラー・オプションに対して有効だったコード・ページです。
整数
整数オペランドは、整数の桁数と同じ長さの英数字カテゴリーの一時データ項目へ移動されるかのように処理されます。符号なしの値が使用されます。次に、この一時データ項目は英数字オペランドとして変換されます。
外部浮動小数点
display 浮動小数点項目は、数値としてではなく、英数字カテゴリーのデータ項目であるかのように処理されてから、英数字オペランドとして変換されます。

国別浮動小数点データ項目は、数値としてではなく、国別カテゴリーのデータ項目であるかのように処理されます。

変換に関する暗黙の移動は、MOVE ステートメントの規則に従って実行されます。

生成された国別カテゴリーのデータ項目は、2 つの国別オペランドの比較で使用されます。

2 つの国別オペランドの比較

2 つのオペランドの長さが異なる場合は、短い方のオペランドの右側に デフォルトの国別スペース文字 (NX'0020') を埋め、両方のオペランドの長さが等しくなるようにして比較が行われます。 こうして比較は、長さが同じオペランドを比較するための規則に従って実行されます。

2 つのオペランドの長さが同じ場合は、オペランド内の同じ位置にある国別文字同士が比較されます。 比較は左端から開始され、途中で異なる国別文字が検出されるか、右端に到達するまで繰り返されます。 対応する国別文字がすべて同じであった場合は、2 つのオペランドが等しいと判別されます。

オペランド内で最初に検出された異なる国別文字は、2 つのオペランドの関係を判別するために比較されます。 より大きな照合値を持つ国別文字が入ったオペランドが、より大きなオペランドになります。

より大きな照合値は、文字の 16 進値を使用して判別されます。

PROGRAM COLLATING SEQUENCE 節は、国別オペランドの比較には影響を及ぼしません。


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

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