我正在逐行阅读txt文件,并搜索关键字。当我找到一个关键字时,我将它放在一个数组中供以后使用。但是我一直遇到动态数组的问题。即使txt文件不包含关键字,我的数组也会显示几个空格,并用空字符串填充它。我是否错误地填充了我的动态数组?这是我的代码的移植:
Dim fso, inputFile, outputFile, notFound(), PortTransferError()
Const outPut = "out.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set input = fso.OpenTextFile("file.txt")
Set outputFile = fso.CreateTextFile(outPut)
i = 0
Do Until input.AtEndOfStream
line = input.Readline
Redim Preserve notFound(i)
Redim Preserve PortTransferError(i)
If InStr(line, "Couldn't Find:") Then
notFoundError(i) = line
i = i + 1
ElseIf InStr(line, "Cannot Transfer to Port: ") Then
PortTransferErrorr(i) = line
i = i + 1
End If
Loop
input.Close
For each item in notFound
outputFile.Write(item) 'empty string vals in array
Next
For each item in PortTransferErrorr
outputFile.Write(item)
Next
答案 0 :(得分:3)
你 ReDim (并复制)每个输入行的数组,并且增长两个数组满足每个条件;所以将ReDim线移动到适当的Then部分。