• 検索結果がありません。

バイト文字が処理されなかったと

ドキュメント内 rbal3pdf.ps (ページ 165-169)

このトピックでは、拡張 2 バイト文字が処理されない場合の結果について説明します。

外字が処理されない場合は、次のような結果になります。

v 基本 2 バイト文字は表示および印刷されます。

v 画面では、外字を表示するはずの位置にシステムが未定義文字を表示します。

v 印刷出力では、外字を印刷するはずの位置にシステムが未定義文字を印刷します。

v 外字はたとえ表示または印刷されなくとも、システムに正しく保管されます。

DBCS 装置ファイル・サポート

この節では、DBCS 可能装置ファイルについて説明し、DBCS 可能装置ファイルの処理に関する考慮事項 について説明しています。

データ記述仕様 (DDS) はファイルの記述に使用される言語ですが、 DBCS 可能装置ファイルに使用する ことができます。

DBCS ファイルとは:

DBCS ファイルとは、2 バイト・データが入っているか、または 2 バイト・データを処理するのに使用さ れるファイルのことです。それ以外のファイルは、英数字ファイルと呼ばれます。

次のタイプの装置ファイルは、DBCS ファイルにすることができます。

v ディスプレイ v プリンター

v テープ

v ディスケット v ICF

DBCS ファイルの指定が必要な場合:

このトピックでは、ファイルが DBCS であることを指定する必要がある状況について説明します。

次のような状況の 1 つまたは複数に該当する場合には、ファイルが DBCS ファイルであることを指定し なければなりません。

v ファイルが 2 バイト文字を含む入力データを受け取るか、 2 バイト文字を含む出力データを表示また は印刷する。

v ファイルに 2 バイト文字リテラルが含まれている。

v ファイルがその処理時にファイルで使用される DDS に、2 バイト文字リテラルを含む (固定情報フィー ルドやエラー・メッセージなど)。

v ファイルの DDS に DBCS キーワードが含まれる。

v ファイルに 2 バイト・データを保管する (データベース・ファイル)。

DBCS ファイルの指定の方法:

装置ファイルが DBCS ファイルである場合は、システムが 2 バイト・データを正しく処理するために、

その旨を指定しなければなりません。このトピックに示されている方法で、DBCS ファイルを指定するこ とができます。

v DDS による方法:

– DDS は次のデータ・タイプのフィールドを提供します。

- DBCS 専用フィールドは、2 バイト文字だけを表示して受け取ります。 DBCS 専用フィールドの 2 バイト文字は常にシフトアウト文字とシフトイン文字で囲まれており、このシフトアウト文字と シフトイン文字は対になっていなければなりません。

- DBCS 混用フィールドは、1 バイト文字および 2 バイト文字の両方を表示して受け取ります。 2 バイト文字はシフトアウト文字とシフトイン文字で囲まれており、このシフトアウト文字とシフト イン文字は対になっていなければなりません。

- DBCS 択一フィールドは、 1 バイト文字と 2 バイト文字の両方 ではなくいずれか一方 を表示し て受け取ります。 2 バイト文字はシフトアウト文字とシフトイン文字で囲まれます。

- DBCS グラフィック・フィールドは、 2 バイト文字だけを表示して受け取ります。 DBCS グラフ ィック・フィールドの文字は、シフトアウト文字およびシフトイン文字を持ちません。なお、IBM i の DBCS グラフィック・フィールドは、システム/370 の DBCS フィールドと同等です。

– ICF ファイルでは、 DBCS 混用データ・タイプ (タイプ O) を用いてフィールドを定義します。

– プリンター・ファイルでは、DBCS 混用データ・タイプ (タイプ O) および DBCS グラフィック・デ ータ・タイプ (タイプ G) を用いてフィールドを定義します。

– ディスプレイ・ファイルでは、 DBCS 専用データ・タイプ (タイプ J)、DBCS 択一データ・タイプ (タイプ E)、 DBCS 混用データ・タイプ (タイプ O) または DBCS グラフィック・データ・タイプ (タイプ G) を用いてフィールドを定義します。

– DDS のデフォルト (DFT) やエラー・メッセージ (ERRMSG) などのキーワードで指定されるリテラ ルなど、処理時にファイルで使用される 2 バイト文字リテラルを使用して行います。

注: また、2 バイト文字リテラルをファイル内のテキストおよび注記として使用することもできます (たとえば DDS キーワード TEXT を使用)。ただし、システムでは、DBCS の使用が 2 バイト文字 の注記だけのファイルについては、これを DBCS ファイルとは見なしません。

– ディスプレイ・ファイルおよびプリンター・ファイルに DDS の代替データ・タイプ (IGCALTTYP) キーワードを指定します。このキーワードを指定すると、ディスプレイ・ファイルおよびプリンタ ー・ファイルを、英数字と 2 バイト文字の両方のアプリケーションで使用することができます。

IGCALTTYP キーワードを有効にすると、2 バイト・データをファイルで使用することができます。

IGCDTA(*YES) の値を指定して、ディスプレイ・ファイルまたはプリンター・ファイルの作成、変 更、またはオーバーライドを行うことにより、IGCALTTYP キーワードを有効にしてください。次の 装置ファイル・コマンドで IGCDTA(*YES) を指定することにより、ディスプレイ・ファイルおよび プリンター・ファイルの IGCALTTYP キーワードを有効にすることができます。

- ディスプレイ・ファイル作成 (CRTDSPF) - プリンター・ファイル作成 (CRTPRTF) - ディスプレイ・ファイル変更 (CHGDSPF) - プリンター・ファイル変更 (CHGPRTF)

- ディスプレイ・ファイル・オーバーライド (OVRDSPF) - プリンター・ファイル・オーバーライド (OVRPRTF)

IGCDTA(*NO) を指定すると、IGCALTTYP キーワードは効力を持たないので、ファイルで使用でき るのは、英数字データだけになります。ファイルの変更またはオーバーライドによって、IGCALTTYP キーワードを有効にしても、ファイルの DDS が変更されることはありません。

DDS ですでに DBCS 機能を指定してある場合は、IGCALTTYP 機能を使用する場合を除き、ファイ ル作成コマンドで IGCDTA(*YES) を指定する必要はありません。その代わり、ファイルに DDS で 示していない DBCS 機能がある時は、IGCDTA(*YES) を指定してください。たとえば、ファイルに 2 バイト・データを入れる予定である場合は、ファイル作成コマンドで IGCDTA(*YES) を指定して ください。

v 次の装置ファイル作成コマンドに IGCDTA(*YES) を指定します。

– ディスプレイ・ファイル作成 (CRTDSPF) – プリンター・ファイル作成 (CRTPRTF) – テープ装置ファイル作成 (CRTTAPF)

v 次のデータベース・ファイル作成コマンドに IGCDTA(*YES) を指定します。

– 物理ファイル作成 (CRTPF)

– ソース物理ファイル作成 (CRTSRCPF) DBCS のファイルの指定が正しくない場合:

ファイルが DBCS ファイルであることを正しく指定しないと、エラーが発生する可能性があります。

v プリンター・ファイルの場合、プリンター・データ管理機能は、プリンターに対する出力データには 2 バイト・データは入っていないと想定します。最終結果は、データの印刷が行われるプリンターのタイ プ、および使用しているプリンター・ファイルの印刷不能文字置き換えパラメーターの状況によって異 なります。

印刷不能文字置き換えオプションが選択されている場合は、プリンター・データ管理機能では、シフト 制御文字を印刷不能文字と解釈して、ブランクで置き換えます。 2 バイト・データ自体は英数字データ として解釈され、プリンターはそのまま印刷しようと試みます。印刷された 2 バイト・データは、意味 をなしません。

印刷不能文字置き換えオプションが選択されておらず、プリンターが英数字プリンターである場合は、

2 バイト・データは制御文字も含め、そのままプリンターに送られます。ほとんどの英数字プリンター ではシフト制御文字はサポートされず、プリンターでエラーが起こります。

印刷不能文字置き換えオプションが選択されておらず、プリンターが DBCS 装置である場合は、 2 バ イト・データは外字データを除いて印刷されます。ファイルが DBCS であることが指定されていないの で、システムは外字処理を実行しません。したがって外字は、未定義 2 バイト文字を表す記号で印刷さ れます。

v ディスプレイ・ファイルの場合、ディスプレイ・データ管理機能は、ディスプレイに対する出力データ には 2 バイト・データが入っていないものと想定します。最終の結果は、ディスプレイが英数字ディス プレイか DBCS ディスプレイかによって異なります。

ディスプレイが英数字ディスプレイの場合は、2 バイト・データは英数字データとして解釈されます。

シフト制御文字は、ブランクとして表示されます。表示された 2 バイト・データは意味をなしません。

ディスプレイが DBCS ディスプレイの場合は、2 バイト・データは、外字を除いて表示されます。シス テムでは、データに対して外字処理を実行しません。したがって、外字は未定義 2 バイト文字を表す記 号で表示されます。

v ソース・ファイルが DBCS ファイルとして指定されていない場合は、システムは DBCS テキストのリ テラルを、2 バイト文字リテラルとして認識しません。

プリンター・ファイルで DBCS を使用可能にする:

データに 2 バイト文字が入っている場合、そのデータをスプール・ファイルに入れるのに使用されるプリ ンター・ファイルは、 2 バイト・データを処理することができなければなりません。

システムは多くの場合、最終的に印刷または表示されるデータの生成にプリンター・ファイルを使用してい ます。このような場合、IBM 提供のプリンター・ファイルのいずれかを使用して、データはまずスプー ル・ファイルに入れられます。データはそのスプール・ファイルから取り出され、ユーザーの要求に応じて 表示または印刷されます。

プリンター・ファイルで 2 バイト・データを処理することができるのは、そのファイルに関して、

IGCDTA パラメーターに値 *YES が指定されている場合です。ほとんどの場合、システムでは 2 バイ ト・データがあることを認識し、使用されるプリンター・ファイルで 2 バイト・データの処理を間違いな く行なうために、適切な措置を講じます。

しかし、システムで 2 バイト・データがあることを認識できず、2 バイト・データの処理ができないプリ ンター・ファイルの使用を試みる場合があります。このような場合は、ディスプレイまたはプリンターでの 出力は、判読できないものになります。 2 バイト文字を含むオブジェクト記述を英数字装置で表示または 印刷しようとすると、このようなことが起こります。

2 バイト文字を表示または印刷する場合に、正しい結果が得られるようにするには、次のような注意が必要 です。ユーザー側で処置が必要になるのは、1 バイト文字の言語が 2 次言語として導入されている場合で す。 DBCS バージョンのプロダクトの一部として配布されたプリンター・ファイルは、常に DBCS デー タの処理が可能です。

プロダクトまたは機能の導入後に、次の推奨処置を実行する必要があります。

1. システムに接続されているプリンターおよびディスプレイ装置すべてで、DBCS の使用が可能である場 合は、すべてのプリンター・ファイルを 2 バイト・データ用として使用可能にすることができます。 1 バイト・バージョンの 2 次言語機能の一部として配布された IBM 提供のプリンター・ファイルの場合 は、プリンター・ファイル変更 (CHGPRTF) コマンドを出すことにより、すべてのプリンター・ファイ ルを 2 バイト文字使用可能にできます。

CHGPRTF FILE(*ALL/*ALL) IGCDTA(*YES)

このコマンドが完了すると、すべてのライブラリーのプリンター・ファイルはすべて、 2 バイト・デー タが使用可能になります。この変更は永続変更です。

2. システムに接続されているプリンターおよびディスプレイ装置のすべてが DBCS 可能とは限らない場 合は、すべての IBM 提供プリンター・ファイルを使用可能にすることはできません。

その代わりにシステムのライブラリー探索機能を使用して、どのプリンター・ファイルを特定のジョブ で使用するかということを制御します。 2 バイト・データが使用される可能性がある時は、ジョブのラ イブラリー・リストは、DBCS 対応プリンター・ファイルが最初に検索されるようになっている必要が あります。これに対して、1 バイト・データしか使用されない場合は、 DBCS 可能になっていないプ リンター・ファイルがまず見つかるように、ライブラリー・リストをセットアップすべきです。このよ うにすれば、プリンター・ファイル機能は処理されるデータのタイプに一致することになります。使用 するプリンター・ファイルのタイプを決定するときには、処理されるデータのタイプを考慮する必要が あります。実際にデータを表示または印刷するのに使用される装置によって、この決定が影響を受ける こともあります。

ドキュメント内 rbal3pdf.ps (ページ 165-169)

関連したドキュメント