在一个大文本文件中,如何读取指定行,并保存?
我有一个类似于:
123
456222
7896
111
455
0
0
12
......
这样的一列文本文件,这个文本文件很大,有120多M。
我写了这么一个程序:
Dim a() As String
Private Sub Command1_Click()
Dim inputdata
CommonDialog1.Action = 1 'Action=1表示弹出“打开”对话框
Open CommonDialog1.FileName For Input As #1 'Commondialog1.fileName表示的是路径名,也就是commondialog中打开的文件名
Do While Not EOF(1) 'EOF返回值为1表示已经到达文件末尾
Line Input #1, inputdata
Data = Data + inputdata + vbCrLf
Loop
a = Split(Data, vbCrLf)
Close #1
End Sub
'////以上代码的作用是把文本文件转成一个数组,以便于定位指定行///
Private Sub Command2_Click()
Dim startPoint As Double 'startPoint定义为以秒为单位
Dim timeLong As Double '时间长度单位为周期个数
startPoint = Val(Text1.Text) * 5000 '5000意思是,一秒钟为5000个点
timeLong = Val(Text2.Text) * 100 '一个周期是100个点
Dim i As Long
i = 0
Open "c:\" & "起始时刻:" & Text1.Text & "秒-取样周期数:" & Text2.Text & "个循环" & ".txt" For Append As #2
Do While (i < timeLong)
Print #2, a(startPoint + i)
i = i + 1
Loop
End Sub
'////以上代码的作用是从startPoint开始摘取timeLong长度的数据////
我在小文本文件上通过测试,可是换到120M的文本文件,会占用大量内存,系统没有反应。我该如何处理这样大的文本文件的定位问题?
请高手指教!