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


例: 国別データとの間の変換

次の例は、国別 (UTF-16) データ項目との間での変換に、NATIONAL-OF および DISPLAY-OF 組み込み関数ならびに MOVE ステートメントを使用する方法を示しています。 また、複数のコード・ページでエンコードされたストリングに対して操作を行うときの明示的変換の必要性も示しています。

 CBL CODEPAGE(00037)
* . . .
 01  Data-in-Unicode          pic N(100) usage national.
 01  Data-in-Greek            pic X(100).
 01  other-data-in-US-English pic X(12) value "PRICE in $ =".
* . . .
     Read Greek-file into Data-in-Greek
     Move function National-of(Data-in-Greek, 00875)
         to Data-in-Unicode
* . . . process Data-in-Unicode here . . .
     Move function Display-of(Data-in-Unicode, 00875)
         to Data-in-Greek
     Write Greek-record from Data-in-Greek

上記の例は、入力コード・ページが指定されているので正しく機能します。Data-in-Greek は、CCSID 00875 (ギリシャ語) で表されるデータとして変換されます。 しかし、以下のステートメントの場合、 項目内の文字すべてが、たまたまギリシャ語と英語の両方のコード・ページで表現が同じであるものでなければ、変換が誤ったものになります。

Move Data-in-Greek to Data-in-Unicode

上記の MOVE ステートメントは、CCSID 00037 (米国英語) から UTF-16 への変換に基づいて、Data-in-Greek を Unicode 表現に変換します。 Data-in-Greek は CCSID 00875 でエンコードされるので、この変換では期待される結果が得られません。

CODEPAGE コンパイラー・オプションを正しく CCSID 00875 に設定することができた場合 (つまり、プログラムの残りの部分も EBCDIC データをギリシャ語で処理した場合) は、上記と同じ例を次のようにしてコーディングすることができます。

 CBL CODEPAGE(00875)
* . . .
 01  Data-in-Unicode pic N(100) usage national.
 01  Data-in-Greek   pic X(100).
* . . .
     Read Greek-file into Data-in-Greek
* . . . process Data-in-Greek here ...
* . . . or do the following (if need to process data in Unicode):
     Move Data-in-Greek to Data-in-Unicode
* . . . process Data-in-Unicode
     Move function Display-of(Data-in-Unicode) to Data-in-Greek
     Write Greek-record from Data-in-Greek

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

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