2

私は 1 週間の大半を費やし、最終的にメインフレームからのパックされたデータを 16 進数表現に変換する方法を見つけ出しました。現在、Visual C# でその 16 進数の文字列を整数に変換する方法を見つけようとしています。これには簡単な機能があると確信していますが、現時点では検索をバイパスしています。メインフレーム表現を提供するコードは次のとおりです。

// Get the packed decimal field from the input record
String testString = dataRecord.Substring(40, 4);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(testString);
// Create two different encodings.
Encoding ascii = Encoding.ASCII;
Encoding ebcdic = Encoding.GetEncoding("IBM037");
// Unpack Data
Byte[] bt = Encoding.Convert(ascii, ebcdic, bytes);
// Get the data into a string in the format of 00-5F (represents a positive 5)
// The format of 00-5D (represents a negative 5)
String numberString = BitConverter.ToString(bt);

メインフレームの 10 進数値が 5 の場合、bt[0] は 00 になり、bt[1] は 5F になります。文字列に変換すると「00-5F」になります。私が本当に欲しいのは、「5」という整数または文字列です。すべての桁をテストして正しい値を返す独自のものを作成することもできますが、独自のルーチンを作成することなく、16 進数の符号付き数値から文字列または整数に変換する方法が必要だと考えています。 . 誰かがその機能が何であるかについて何か考えを持っていますか? 標準の convert.toint や todecimal などの関数を試してみましたが、この形式ではおかしくなりました。

ありがとう!

4

0 に答える 0