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没有了。怎么回事啊?