Sub DUE()
Dim strBuffer As String
Dim strContents() As String
Dim I As Long
ReDim strContents(0)
Erase strContents()
Close #1
Open "C:\TEST\28-06-2013.TXT" For Input As #1
strBuffer = Input(LOF(1), 1)
Close #1
strContents = Split(strBuffer, vbCrLf)
For I = LBound(strContents) To UBound(strContents)
'Debug.Print strContents(I)
Next I
End Sub
问题内存不足!!!!
缓冲txt文件时。是大约256 MB 1.500.xxx线。每条线都有一个固定的长度132.
答案 0 :(得分:1)
最好使用Line Input
代替:
Sub DUE()
Dim I As Long
Dim strContents() As String
Open "C:\TEST\28-06-2013.TXT" For Input As #1
Do Until EOF(1)
Redim Preserve strContents(i)
Line Input #1, strContents(i)
'Debug.Print strContents(i)
I = I + 1
Loop
Close #1
End Sub
然后,您可以访问strContents
中的每一行。
另外值得注意的是:
ReDim strContents(0)
Erase strContents()
这不是那么合适。请改用我的行:
Dim strContents() As String
编辑:
或者更好的是,在每一行上做你需要做的事情,不要把它存放在strContents
里面,如下所示:
Sub DUE()
Dim S As String
Open "C:\TEST\28-06-2013.TXT" For Input As #1
Do Until EOF(1)
Line Input #1, S
'Debug.Print S
Loop
Close #1
End Sub