この度はお世話になります。
現在、バイナリ―ファイル(xxxx.bin)をVBAで読み込み、バイナリ―データを文字列化して、エクセルで解析できるようなシートを作っています。
バイナリ―ファイルの中身が31 39 32 31 ・・・・・となっていたら、31393231・・・と文字列化にしたいです。
そこで、自分でプログラムを考えてみたのですが、バイナリ―が 01 などの場合、など“1”として読み込まれて、“0”が入らず、ずれてしまいます。
Sub 電文解析プログラム()
Dim Deciphering_file As Variant '読み込みファイル
Dim buf As Byte '1バイト格納
Dim fLen As Long 'ファイルサイズ
Dim TEMP(1) As String '
Dim S_JIS As String '文字コード(2バイト)
Dim str As String '文字列データ
Dim i As Long
Deciphering_file = Application.GetOpenFilename("BINファイル(*.bin),*.bin")
fLen = FileLen(Deciphering_file)
Open Deciphering_file For Binary As #1
For i = 1 To fLen
Get #1, i, buf
S_JIS = Hex(buf)
If buf = 0 Then
S_JIS = "00"
End If
TEMP(0) = Mid(S_JIS, 1, 1)
TEMP(1) = Mid(S_JIS, 2, 1)
str = myChr & TEMP(0) & TEMP(1)
Next i
End Sub
ホントは3行くらいで済みそうな気がするんですが、あまりプログラミングをやったことありません。なので、すみませんがご教授お願いいたします。
お礼
Picosoft様 ご回答、ご教授ありがとうございます! 回答より、解決いたしました!ありがとうございました。 Right関数も知らなかったので、勉強になりました。 また、なにかあったときはよろしくお願いします。