vb高手请进 exe末尾追加问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:37:14
有段代码:
Private Sub Command1_Click()
Dim filenum As Integer, buff() As Byte, i As Integer
filenum = FreeFile
Open "c:\a.exe" For Binary As filenum
Put filenum, LOF(filenum) + 1, Text1.Text
Close filenum
filenum = FreeFile
Text2.Text = ""
Open "c:\a.exe" For Binary As filenum
ReDim buff(LOF(filenum) - 1)
Get filenum, , buff
For i = LBound(buff) To UBound(buff)
Text2.Text = Text2.Text & Chr(buff(i))
Next i
Close filenum
End Sub

为什么执行到for就溢出?(i=0)
顺便请教一个问题,追加的数据要怎么读取出来?怎么修改?
万分感谢!
【如果答案满意,一定追加!我怕分被吞……】
谢谢一楼的朋友~
那请问要怎么修改追加进去的东西呢?
谢谢!

1、为什么执行到for就溢出?(i=0)
因为buff() As Byte这个数组很大,超出Integer,所以i定义部分要改为long类型,即Dim filenum As Integer, buff() As Byte, i As Long
2、后面代码已经把追加的数据读取出来了,只是速度慢些,你多等一会,看看text2中最后内容就知道了。

我已经运行通过了,你看看吧。
=============================================
关于修改:
你要记住原来写入几个字节,假设原来写入“2WDragon”,字节数为8
下面读取这8个字节
Dim filenum As Integer, buff() As Byte, i As Long
filenum = FreeFile
Text2.Text = ""
Open "c:\a.exe" For Binary As filenum
ReDim buff(8 - 1)

Get filenum, LOF(filenum) - 8 + 1, buff
For i = LBound(buff) To UBound(buff)
Text2.Text = Text2.Text & Chr(buff(i))
Next i
Close filenum

修改text2后,在把text2写入文件特定位置:
Dim filenum As Integer, buff() As Byte, i As Long
filenum = FreeFile
Open "c:\a.exe" For Binary As filenum
Put filenum, LOF(filenum) - 8 + 1, Text2.Text
Close filenum