dポイントプレゼントキャンペーン実施中!

VBでバイナリデータを16進数に変換するには、
どのような方法がありますか?

A 回答 (2件)

田吾作7です



16進数にするだけならHEXでできます。
バイナリデータをどういった形で変数に読み込んでるかがわからないために、的を得た回答ができません。
読み込む部分までのソースを記してもらえれば、以後どうするかを答えやすくなると思います。


全然回答になってないかもしれませんが、バイナリファイルを読み込む時のサンプルを記します。

Sub Main()
  Const testFile   As String = "C:\TESTFILE"
  
  Const ReadBufSize  As Long = 256  '読み込むバッファのサイズを指定
  
  Dim Buf()  As Byte   'バッファ
  Dim lngFile As Long   'ファイルナンバ
  
  Dim i    As Long

  lngFile = FreeFile
  Open testFile For Binary Access Read Shared As #lngFile
    ReDim Buf(ReadBufSize - 1)
    Get #lngFile, , Buf
  Close #lngFile
  
  '16進数にしてデバッグウィンドウに出力
  For i = 0 To (ReadBufSize - 1)
    Debug.Print Hex(Buf(i))
  Next i
End Sub
    • good
    • 0

バイナリデータ、16進数、共に文字列だと思うので、


自分で作成してしまいますね
(何か便利な関数があれば良いのですが・・・自分は知りません(T_T))
下記にサンプルを記しておきます

'~~~~~~~~~~
'1バイトのバイナリデータを16進に変換する
Private Function Byte01BinToHex(BinData As String) As String
Dim i As Integer
Dim n As Integer

'引数の文字数判断
If Len(BinData) = 8 Then

'変数初期化
i = 0

'1バイト分ループ
For n = 1 To 8 Step 1
'値を変数に加算
i = i + (CInt(Mid(BinData, 9 - n, 1)) * (2 ^ (n - 1)))
Next

'戻り値設定
Byte01BinToHex = Hex(i)

Else

'戻り値設定
Byte01BinToHex = "xx"

End If

End Function
'~~~~~~~~~~

頑張ってください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています