2016-08-16 2 views
1

Ich lese eine TXT-Datei Zeile für Zeile und Suche nach Schlüsselwörtern. Wenn ich ein Schlüsselwort finde, platziere ich es in einem Array für die spätere Verwendung. Allerdings stolpere ich immer wieder über Probleme mit meinem dynamischen Array. Auch wenn die TXT-Datei keine Schlüsselwörter enthält, zeigt mein Array ein paar leere Leerzeichen an und füllt es mit leeren Zeichenfolgen. Füge ich mein dynamisches Array falsch ein? Hier ist eine Portierung von meinem Code:Dynamische Array-Probleme 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

Welchen Code haben Sie zur Zeit? – langstrom

+0

aktualisierte Frage mit Curr-Code. – pokemongirl1234

Antwort

3

Sie ReDim (und kopiert) die Arrays für jede Eingabezeile und Sie wachsen beiden Arrays für jede der Bedingungen erfüllen; Verschieben Sie die ReDim-Linien in die entsprechenden Then-Teile.

+0

* Übersetzung *: Verschieben Sie die 'ReDim' Anweisungen in den relevanten Teil der' If' Anweisung. – Lankymart