2

Windows OS からメインフレームに ebcdic ファイル (ascii から変換) をアップロードしています。私の問題は、ファイルをアップロードした後にファイルを確認すると、多くの新しい行が表示されることです。16 進ダンプで確認しようとすると、メインフレームが x'15' を検出すると、それが改行に変換されることがわかりました。ファイルにはパックされた 10 進数があるため、16 進数には x'001500001c' などを含めることができますが、アップロードすると、メインフレームがそれを新しい行と間違えました。誰でもこの問題を解決できますか?

4

2 に答える 2

2

すでにEBCDICでファイルを送信している場合は、FTPクライアント(またはアップロードがコードによって行われる場合はライブラリ)をascii / EBCDICではなくバイナリ(IMAGE TYPE)モードにする必要があります。

于 2009-02-23T03:45:05.483 に答える
1

アップロード先のターゲット「ファイル」のタイプによって異なります。

ブロック サイズが固定されているメンバー (FB80 など) にアップロードする場合は、(バイナリ モードで) 送信する前に、すべての行にスペースが埋め込まれていることを確認する必要があります。

テキスト モード転送は、バイナリ ファイルには適していません (ファイルにパック 10 進数が含まれている場合、ファイルバイナリです。FTP が実際の行末文字を検出する信頼できる方法はありません)。

固定長レコードを生成できるようにするには、Windows ASCII から EBCDIC へのコンバーターを修正する必要があります。

他の唯一のオプションは、メインフレームで REXX スクリプトを使用することですが、これには、実際の行末マーカーとバイナリ データ内のそのマーカーとの違いを認識できる必要があります。

パック 10 進数が BCD ニブルで構成され、最後のニブルが 0xC または 0xD であるという事実から、パック 10 進数の存在を判断できる可能性がありますが、それによって誤検知または誤検知が発生する可能性もあります。

私のアドバイス: ASCII から EBCDIC に変換するときは、同時に必要なレコード長になるまで行を埋めてください。

私が指摘したいもう 1 つのポイントは、メインフレーム上のファイルを確認したい (EBCDIC を必要とするコードからファイルを使用しない) だけの場合、ISPF エディターにはいくつかの新しいコマンドが含まれているということです (z/OS 1.9 以降)。私が正しく覚えていれば)。

SOURCE ASCIIデータを EBCDIC ではなく ASCII として表示します。さらに、このLFコマンドを使用すると、FB メンバーの ASCII ストリームをマッサージして、行末を正しく修正することができます。

于 2009-02-23T05:05:29.347 に答える