Private Sub Command1_Click()for i = 0 to 100
Dim aryContent() As Byte
  Open "c.txt" For Binary As #100
  Open "a.txt" For Binary As #1
  Open "b.txt" For Binary As #2
  ReDim aryContent(LOF(1) - 1)
  Get #1, , aryContent
  Put #100, , aryContent
  ReDim aryContent(LOF(2) - 1)
  Get #2, , aryContent
  Put #100, , aryContent
  Close #1
  Close #2
  Close #100
next i
End Sub 执行前两遍正常,结果也正常,能把两个文件连接起来,但是到第三个就执行非法操作,百试不爽
快崩溃了

解决方案 »

  1.   

    你那个效率太低了,改一下:Option ExplicitPrivate Sub Command1_Click()
            Dim FileNumber As Integer, c As Integer
            Dim aryContent() As Byte, S As String, T As String, i As Integer
            For i = 0 To 100
                FileNumber = FreeFile
                Open "c:\a.txt" For Binary As #FileNumber
                ReDim aryContent(LOF(FileNumber) - 1)
                Get #FileNumber, , aryContent
                S = StrConv(aryContent, vbUnicode)
                Close #FileNumber
                
                FileNumber = FreeFile
                Erase aryContent
                Open "c:\b.txt" For Binary As #FileNumber
                ReDim aryContent(LOF(FileNumber) - 1)
                Get #FileNumber, , aryContent
                T = StrConv(aryContent, vbUnicode)
                Close #FileNumber
                            
                FileNumber = FreeFile
                S = S & vbCrLf & T
                Open "c:\c.txt" For Binary As #FileNumber
                Put #FileNumber, , S
                Close #FileNumber
            Next
    End Sub
      

  2.   

    楼上不好意思,不是处理文本文件,要处理2进制文件。
    1.txt只是一个事例,不是文本文件
      

  3.   

    用完数组后用下列代码释放
    Erase aryContent
      

  4.   


    谢谢!Erase DynamicArray 解决了