VB中如何以二进制方式从尾部向头部反向读取,然后转换读取的数值进制?

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:07:57
比如我现在有这么一个二进制文件,内容为:
01 DC BB EF DA CD 7F 88
在VB里面如何从88开始,按反方向读取,即读取的内容为:
88 7F CD DA EF BB DC 01,
假如前4个字节表示一个10进制数,后4个字节表示一个16进制数,我要把他们转换成正确的类型,比如
Dim a As Single
Dim b As String
转换完成之后的结果是:
a = 2290077146 (88 7F CD DA)
b = "0xEFBBDC01" (EF BB DC 01)
这个代码要怎么写呢?
如果不嫌麻烦的话希望能详细说明下,谢谢大家了.

修改了一下,能得出你想要的结果
Private Sub Form_Load()
Dim a As Double, b As String, v As Long
Open "e:\noname" For Binary As #1
Get #1, LOF(1) - 3, v
If v And &H80000000 Then
a = 2 ^ 31 + (v And &H7FFFFFFF)
Else
v = v
End If
Get #1, Loc(1) - 7, v
b = "0x" & Hex(v)
Close #1
End Sub

反向简单!!
但是:
88 7F CD DA 这时10进制?? 我把它当成16进制怎么转成负数了,晕!!不来献丑了!

利用VB的seek函数,先求长,定位到倒数1byte,读取,seek倒退,再读.....

不太明白你说的是什么意思.