VB程序员博客

VB程序开发

Private Sub Command1_Click()
Dim a As String
Open "D:pcisuijiwhite.bmp" For Binary As #1
    a = Input(500, #1)
    Text1.Text = a
Close #1
End Sub

这样的话只能读前面几个字母。如果用input读入,源文件里的00会自动被省略不记,直接读下一个。例如下面这一行
“BMF+      6  (  d  d       '                        €”
“空格”(代码是“00”)就会自动忽略,到“6”只是读入了5个字符,怎么让这些空格也算字符?
该怎么修改程序?
谢谢。Private Sub Command1_Click()
Dim a As String, b(511) As Byte, i As Integer
Open "D:pcisuijiwhite.bmp" For Binary As #1
b = Input(512, #1)
Close #1

For i = 0 To 511
    a = a & Format(Hex(b(i)), "00")
Next i
Text1.Text = a
End Sub 能解释下这一句的意思吗? 
a = a & Format(Hex(b(i)), "00") 变成十六进制字符串。你给的运行结果是前面几个内容是4200 4D00 4600 2B00 3600 0400
我用winhex打开的结果是424D 462B 0000 0000 0000 3604
哪出问题了吗?我这里直接执行b = Input(512, #1)这句就会出错,说不能数组直接赋值
我做了些修改
自己试了下可以实现,如下

Private Sub Form_Click()

Dim a As String, b(511) As String, i As Integer
Open "D:精美图片\8.bmp" For Binary As #1
For i = 0 To 511
b(i) = Input(1, #1)
Next
Close #1

For i = 0 To 511
    a = a & Format(Hex(Asc(b(i))), "00")
Next i
Text1.Text = a

End Sub正确的是424D 462B 0000 0000 0000 3604
我输出的是424D 462B 3604
中间的0000没有了。怎么回事啊?

标签: , , ,