1

asp.net サイトでユーザーが生成したデータを Unisys メインフレームにアップロードしようとしています。クライアントは、FTP を使用してファイルをアップロードするのではなく、データを Unisys Mainframe Windows 共有に直接ロードすることを望んでいると判断しました。通常、FTP は ASCII と EBCDIC の間の変換を行います。

問題は、ファイルの内容を EBCDIC としてエンコードしたかどうかに関係なく、メインフレームがファイルを ASCII として認識することです。

テストコードは次のとおりです。

        string dataToWrite = "ACHR0000000000575TEST EBCDICPAYEE             8899007500038159 0000001000160330 ".ToUpper();
        Encoding ebcdic = Encoding.GetEncoding("IBM037");

        List<byte> bytes = new List<byte>();
        bytes.AddRange(Encoding.Convert(Encoding.ASCII, ebcdic, Encoding.ASCII.GetBytes(dataToWrite)));


        using (var unc = new UNCAccessWithCredentials())
        {
            // get access to the reconciliation file share using credentials in the config
            string path = @"\\xxx\RECONDEV";
            unc.NetUseWithCredentials(path, "XXX","", "XXX");
            string fileName = Path.Combine(path, "ACH");
            using (var binWriter = new BinaryWriter(File.OpenWrite(fileName)))
            {
                binWriter.Write(bytes.ToArray());
                binWriter.Flush();
                binWriter.Close();
            }
        }

質問
1) ファイルを ASCII として作成し、メインフレーム ジョブでユーティリティを呼び出してファイル EBCDIC を変換する必要がありますか? もしそうなら、ユーティリティの名前は何ですか? メインフレームの運用担当者は 1 つも知りません。

2) .net 内で実際に EBCDIC ファイルを作成する方法はありますか? EBCDIC エンコーディングは機能していますが、ファイルの種類が異なると思われ、何も見つけることができませんでした。

私は文字通りメインフレームで 20 年間何もしていないので、理解が深まりません。

前もって感謝します。クリス

4

1 に答える 1

0

参考までに、コンサルタントは、ファイルをメインフレーム共有にコピーする際に、MCPCopy というユーティリティを使用してファイルを ASCII ストリームから EBCDIC にコピーおよび変換することを提案しました。このユーティリティは、NXExtend の一部としてインストールできます。ASP.Net サイトで使用されるコマンド ラインは次のとおりです。

c:\Windows\MCPCopy.exe {SourceFile} {DestinationFile} /Y /Z:SR /D:80

お役に立てれば

于 2016-05-03T14:29:25.187 に答える