把文件读完后再写入另一个文件,为什么就会出错.txt

来自「VB技巧问答10000例 VB技巧问答10000例」· 文本 代码 · 共 20 行

TXT
20
字号
问题出在你的ReDim语句上,每次你用ReDim改变数组大小时,以前读进来的数都会被仍掉,所以写的时候除了最后一个字节都不对。要保留以前读的数,应该改为: 
    ReDim Preserve a(1 To i) 
    实际上,你可以使用FileLen得到文件长度,这样程序可以简化: 
    Dim a() As Byte 
    Open "c:\windows\desktop\flash.exe" For Binary As #2 
    Open "d:\flash.exe" For Binary As #1 
    Dim i As Long 
    i = 0 
    ReDim a(1 To FileLen("c:\windows\desktop\flash.exe")) 
    Do While Not EOF(1) 
    i = i + 1 
    Get #1, , a(i) 
    Loop 
    For s = 1 To i 
    Put #2, , a(s) 
    Next 
    Close 1 
    Close 2 
<END>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?