ASCII テキスト・ファイルへのデータの転送

ASCII のテキスト・ファイルの作成時には、iSeries、eServer™ i5、または System i5® から得られたデータは次のように変更されます。
  • 16 進フィールドは、ハーフバイトごとに ASCII の同等な文字に変更されま す。例えば、X'D3'ASCII の 4433 に拡張されて、ファイルに書き出されます。エディターで表示したり印刷したりする場合には、この ストリングは D3 として表示されます。
  • EBCDIC の文字フィールドは変換テーブルの定義に従って、 1 バイトごとに ASCII 文字に変更され、マッピングされます。
  • 日付、時刻、およびタイム・スタンプのデータは、変換テーブルで定義されてい るとおり、ASCII 文字にマッピングされます。
  • 可変長フィールドおよびヌル・フィールドは固定長に変換され、 後書きブランク (文字、16 進数、日付、時刻、およびタイム・スタンプの場合) または ゼロ (2 進数、ゾーン、およびパックの場合) がフィールドの最大長になるまで追加されます。
    注: 一部の EBCDIC 表示不能文字はworkstationASCII の制御文字に変換されます。EBCDIC 文字フィールドに表示不能データが入っていると、予期しない結果になる ことがあり、ASCII テキスト・ファイルは改変されたように見える場合があります。

    例えば、EBCDIC フィールドの中の X'05'ASCIIX'09' に変換されますが、これは水平タブ用の ASCII 制御文字です。workstationのほとんどのテキスト・エディターでは、workstationのテキスト・ファイルのデータが 右にシフトして表示されるように、このタブ文字が処理されます。

    この問題を解決する 1 つの方法として、これらのフィールドを AS/400 システムで 文字フィールドでなく 16 進フィールドとして定義する方法があります。

  • 2 進フィールドは、ASCII の数値に変更されます。例えば、小数部の桁がない X'FFD3' は、ASCII の 20202020202020202D3435 に拡張されます。エディターで表示したり印刷したりする場合には、このストリングは -45 と して表示されます。
    注: ASCII フィールドの長さは 2 進フィールドの長さによって異なります。

    iSeries、eServer i5、または System i5 の 2 進数フィールドの長さは、2 または 4 バイトです。変換された ASCII フィールドの長さは、符号を含めて 6~11 バイトです。小数点にはさらに 1 バイトが追加されます。

    表 1 に、2 進フィールドの長さとその ASCII の長さの マッピングを示します。

表 1. Binary-to-ASCII フィールド長マッピング
2 進数の長さ ASCII 長さ   値の範囲
2 6 -32768 ~ 32767
4 11 -2147483648 ~ 2147483647