変換の補正について説明します。
文字コード変換カスタマイズ関数/数値データ変換カスタマイズ関数
変換エラー発生時の変換の続行/中断の要求
数値データ項目または文字コード項目の変換処理中に変換エラーが発生した場合に、そのエラーを起こした項目はエラーに応じた代替処置を行い、変換を続行します。
その場合、拡張データ変換プログラムはエラーを通知します。
また、変換エラーが発生した場合に、そのレコードの変換を中断させることができます。
数値データ項目の変換において変換エラーが発生した場合、変換先データの格納領域は変換前の状態のまま保存されます。この領域にパディング(注1)数値を詰める補正処置をすることができます。
(注1)
ある領域の全体または未使用部分を特定の数値で埋めること。
領域を埋める数値をパディング数値と呼ぶ。
浮動小数点のオーバーフロー/アンダーフロー発生時の代替処置
浮動小数点のオーバーフロー/アンダーフローが発生した場合、以下の処置を行います。
オーバーフロー:浮動小数点の最大値を設定
アンダーフロー:浮動小数点のゼロ値を設定
文字コードを変換した結果、変換先のコード系で未定義の文字は、次の代替文字に置き換えます。
1バイトの文字コード:1バイトのアンダースコア
2バイトの文字コード:2バイトのアンダースコア
注意
拡張データ変換プログラムは、変換対象のデータ中に未定義文字があった場合、未定義文字を読み飛ばすことはしません。
コード変換結果が変換先の格納領域に満たない場合には、残りの領域は変換前の状態のまま保存されます。残りの領域にパディング文字を詰める補正処置をすることもできます。
変換結果のデータが指定された出力領域からあふれる場合には、領域を越える分のデータを切り落とします。文字のコードを構成するバイトが領域をまたがって寸断される場合、その文字のコードを構成する全バイトを切り捨て、残りの領域は変換前の状態のまま保存されます。残りの領域にパディング文字を詰める補正処置をすることができます。
拡張データ変換プログラムは、文字あふれが発生したことを、エラーで通知します。
JEF固有のシフトコードの種類(Aシフトコード、Kシフトコード)とその機能を以下に示します。
シフトコード | 内容 | 機 能 | |
---|---|---|---|
Aシフトコード | X'29' | このシフトコード以降のデータが、EBCDICコードで表現されていることを示します。 | |
K シ フ ト コ | ド | K1シフト | X'38' | このシフトコード以降のデータが、JEF漢字コード で表現されていることを示します。なお、K1シフトコードを含むデータを日本語ラインプリンタへ出力すると、そのデータを9ポイント(30×30ドット)で印刷します。 |
Kシフト | X'28' | このシフトコード以降のデータが、JEF漢字コードで表現されていることを示します。なお、Kシフトコードを含むデータを日本語ラインプリンタへ出力すると、そのデータを12ポイント(40×40ドット)で印刷します。 |
1バイト/ 2バイト文字混在型のJEFコード系への変換で、変換結果のデータが指定された出力領域からあふれる場合には、領域を越える分のデータを切り落とします。Kシフト状態のままで切り落とされる場合、Aシフトを領域の適切な位置に埋め込む補正処置をすることができます。
拡張データ変換プログラムは、文字あふれが発生したことを、エラーで通知します。
文字コード変換カスタマイズコマンド
文字コード変換カスタマイズコマンドによって、文字コード変換をカスタマイズすることができます。文字コード変換カスタマイズコマンドについては、“2.7.2 文字コード変換カスタマイズ”を参照してください。
JEF コード系との変換における字形重視/領域重視の選択や、SJISコード系との変換におけるSJIS(MS)/SJIS(R90) の選択を行うことができます。また、すべてのコード系組み合わせにおいて、コードの変換対応を変更することが可能です。
字形重視/領域重視については、“付録C 各コード系の90JIS対応状況”を参照してください。