2016-08-16 48 views
1

我正在逐行讀取txt文件,並搜索關鍵字。當我找到一個關鍵字時,我將它放在一個數組中供以後使用。然而,我一直遇到我的動態數組問題。即使txt文件不包含關鍵字,我的數組也會顯示一些空的空格並用空字符串填充它。我是否填寫錯誤的動態數組?這裏是我的代碼移植:動態數組問題VBScript

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

你目前有什麼代碼? – langstrom

+0

用curr代碼更新了問題。 – pokemongirl1234

回答

3

使用ReDim(及複印件)對於每個輸入線陣列和你成長兩個陣列的每個條件的滿足;所以將ReDim行移動到適當的Then部分。

+0

*翻譯*:將'ReDim'語句移入'If'語句的相關部分。 – Lankymart