自己动手写了个二进制的文件复制,不知为什么复制出来的文件可以使用,但大小却总是不一样
另外有朋友知道如果下面的代码用readfile等API来写该怎么写么?Dim x() As ByteOpen "d:\33.exe" For Binary Access Read As #1
Open "d:\44.exe" For Binary Access Write As #2
buff = LOF(1)ReDim x(65535)
For ii = 1 To Int(LOF(1) / 65535)
DoEvents
buff = buff - 65535
Get #1, , x
Put #2, , x
Next ii
ReDim x(buff)
Get #1, , x
Put #2, , x
Close #1
Close #2
End Sub

解决方案 »

  1.   

    Dim   x()   As   Byte Open   "d:\33.exe"   For   Binary   Access   Read   As   #1 
    Open   "d:\44.exe"   For   Binary   Access   Write   As   #2 
    buff   =   LOF(1) 
    ReDim   x(buff-1) 
    Get   #1,   ,   x 
    Put   #2,   ,   x 
    Close   #1 
    Close   #2 
      

  2.   

    这个....就是需要分块读写好给每个块生成出hash值以便建立文件索引啊。所以不能一次读取完
      

  3.   

    chenhui530高人,上次看了也下载调试了一下你写的类,没想到,API的确效率高太多了,可息小弟现在还处于初级阶段,网上API的参考资料也少,实在没搞明白怎么用API的READFILE等来操控二进制分块读写所以只好用open了。
      

  4.   

    在你的模块头加一句
    Option Base 1
    否则数组x()的大小比你认为的大1。
      

  5.   

    Get   #1,   ,   x
    Put   #2,   ,   x
    Next   ii
    ReDim   x(buff)
    Get   #1,   ,   x
    Put   #2,   ,   x 在循环完后最后一次取值我msgbox了一下发现值是对的啊。奇了怪了
      

  6.   


    Dim x() As ByteOpen "d:\33.exe" For Binary Access Read As #1
    Open "d:\44.exe" For Binary Access Write As #2
    buff = LOF(1)ReDim x(65535 - 1)
    For ii = 1 To Int(LOF(1) / 65535)buff = buff - 65535
    Get #1, , x
    Put #2, , x
    Next ii
    ReDim x(buff - 1)
    Get #1, , x
    Put #2, , x
    Close #1
    Close #2
    好了,终于OK了,结果就把两个地方改了个-1就OK了。