私はいくつかのEBCDICデータを解析し、16進数値を見つける必要があります。私が持っている問題は、私が間違ったエンコーディングでファイルを読み込んでいるように見えるということです。レコードが "!
"(EBCDICではx5A
)で始まることがわかりますが、16進数に変換するとx21
として返されます。これは "!
"のASCII値です。EBCDICの文字を16進数値に変換する(AFP EBCDICデータ)
フレームワークに組み込みメソッドがあることを期待していましたが、EBCDIC文字セットを正しくマップするためにカスタムクラスを作成する必要があります。
Using fileInStream As New FileStream(inputFile, FileMode.Open, FileAccess.Read)
Using bufferedInStream As New BufferedStream(fileInStream)
Using reader As New StreamReader(bufferedInStream, Encoding.GetEncoding(37))
While Not reader.EndOfStream
Do While reader.Peek() >= 0
Dim charArray(52) As Char
reader.Read(charArray, 0, charArray.Length)
For Each letter As Char In charArray
Dim value As Integer = Convert.ToInt16(letter)
Dim hexOut As String = [String].Format("{0:x}", value)
Debug.WriteLine(hexOut)
Next
Loop
End While
End Using
End Using
End Using
ありがとうございます!
構造化フィールドのデータは、私が得ようとしているものです。入力をありがとう –