バイナリエディタでファイルを開いた時の
[offset]:+0+1+2+3+4+5+6+7+8+9+A+B+C+D+E+F 0123456789ABCDEF
E3189EF8F076DB5BDF533B051C7509 ・樌茁ロ[゜S;u
の中の真中の"E3189EF8F076DB5BDF533B051C7509"の部分を取得して
そのままMsgBoxで表ヲさせるにはどうしたらいいでしょうか?
Dim strFileName As String
Dim bytBf As Byte
'ここでstrFileNameにファイルパスを取得する処理
Open strFileName For Binary As #1
Get #1, 1, bytBf
Close #1
MsgBox bytBf
とすると何らかの2桁の整数or0が表ヲされるのですが、どこにあたる数字なのかよくわかりません。また、複数Byteを表ヲさせたいのですがどのように
すればよろしいでしょうか?宜しくお願い致します。
>Get #1, 1, bytBf
の処理の意味は理解されていますでしょうか?
これは何をやっているんですか?
うぅ、意味と言われると理解していません。
本とかを見て、やってみたのですが・・・
わからない場合はヘルプで調べるのが基本です。
以下、ヘルプより抜粋
> 構文
>
> Get [#]filenumber, [recnumber], varname
>
> 引数 recnumber には、ファイル内の先頭のレコード番号またはバイト位置には 1 を、
> 2 番目のレコード番号またはバイト位置には 2 を指定します。
というわけで
> Get #1, 1, bytBf
これは、どこにあたる数字かわかると思うのですが。
複数バイトを表示させるには、配列にして一度に取得するか、ループで1バイトずつ取得すれば
よいです。
'ループの場合
Dim iFileNo As Integer
Dim strFileName As String
Dim bytBf As Byte
Dim strBuffer As String
Dim i As Integer
iFileNo = FreeFile
strFileName = "c:\hogehoge.txt"
Open strFileName For Binary As #iFileNo
strBuffer = ""
For i = 1 To 16
Get #1, i, bytBf
strBuffer = strBuffer & Right$("00" & Hex(bytBf), 2)
Next i
MsgBox strBuffer
Close #iFileNo
'配列の場合
Dim iFileNo As Integer
Dim strFileName As String
Dim bytBf(15) As Byte
Dim strBuffer As String
Dim i As Integer
iFileNo = FreeFile
strFileName = "c:\hogehoge.txt"
Open strFileName For Binary As #iFileNo
Get #1, 1, bytBf
strBuffer = ""
For i = 0 To 15
strBuffer = strBuffer & Right$("00" & Hex(bytBf(i)), 2)
Next i
MsgBox strBuffer
Close #iFileNo
>LESIAさん
どうもありがとうございます。
LEISAさんの方法で無事にできました!ありがとうございます。
今度からはHELPをもっとよく見てみます。
>> 引数 recnumber には、ファイル内の先頭のレコード番号またはバイト位置には 1 を、
>> 2 番目のレコード番号またはバイト位置には 2 を指定します。
など、教えて頂いた中にもわからない部分がありますので、
自分で調べてみたいと思います。
ツイート | ![]() |