バイナリ取得について


とり  2005-02-15 21:24:47  No: 119663

バイナリエディタでファイルを開いた時の 
[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を表ヲさせたいのですがどのように
すればよろしいでしょうか?宜しくお願い致します。


。。。  2005-02-15 21:41:56  No: 119664

>Get #1, 1, bytBf
の処理の意味は理解されていますでしょうか?
これは何をやっているんですか?


とり  2005-02-15 22:12:42  No: 119665

うぅ、意味と言われると理解していません。
本とかを見て、やってみたのですが・・・


LESIA  2005-02-15 22:31:25  No: 119666

わからない場合はヘルプで調べるのが基本です。
以下、ヘルプより抜粋
> 構文

> 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


とり  2005-02-16 05:38:25  No: 119667

>LESIAさん
どうもありがとうございます。
LEISAさんの方法で無事にできました!ありがとうございます。
今度からはHELPをもっとよく見てみます。

>> 引数 recnumber には、ファイル内の先頭のレコード番号またはバイト位置には 1 を、
>> 2 番目のレコード番号またはバイト位置には 2 を指定します。

など、教えて頂いた中にもわからない部分がありますので、
自分で調べてみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加