2016-08-31 2 views
3

Ich habe ein Skript, das in einer durch Kommas getrennte Textdatei liest, aber wenn ich Trim verwenden (str) auf einem der Werte, die ich in der Datei extrahiert habe, wird es nicht funktionieren ...Vbscript Trim-Funktion

Meine Textdatei:

some string, anotherstring, onelaststring 
some string, anotherstring, onelaststring 
some string, anotherstring, onelaststring 
some string, anotherstring, onelaststring 

My Script:

Dim fso, myTxtFile 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set myTxtFile = fso.OpenTextFile("mytxt.txt") 

Dim str, myTxtArr 
txtContents myTxtFile.ReadAll 
myTxtFile.close 
myTxtArr = Split(txtContents, vbNewLine) 

For each line in myTxtArr 
    tLine = Split(tLine, ",") 
    Trim(tLine(1)) 
    If tLine(1) = "anotherstring" Then 
     MsgBox "match" 
    End If 
Next 

Mein Skript nie erreicht "Match" und ich bin mir nicht sicher, warum.

+0

Erhalten Sie einen Array außerhalb der Grenzen Fehler? – STLDeveloper

+0

Kein Fehler, trimmt einfach nicht – tarki

+1

'trim (" irgendein String, anotherstring, onelastring ")' ist nie gleich "anotherstring" '. Vielleicht möchten Sie die Zeilen auf "," aufteilen? –

Antwort

3

Trim() ist eine Funktion, die die getrimmte Zeichenfolge zurückgibt. Ihr Code verwendet es nicht ordnungsgemäß. Sie müssen den Rückgabewert verwenden:

myTxtArr(1) = Trim(myTxtArr(1)) 

oder eine andere Variable, um den Wert zu speichern, und verwenden Sie diese separate Variable im Vergleich

trimmedStr = Trim(myTxtArr(1)) 
If trimmedStr = "anotherstring" Then 

oder Sie können nur die Funktion Rückgabewert verwenden, um direkt im Vergleich

If Trim(myTxtArr(1)) = "anotherstring" Then 

Hier ist eine korrigierte Version dieses Teils des Codes:

For each line in myTxtArr 
    tLine = Split(line, ",") 
    tLine(1) = Trim(tLine(1)) 
    If tLine(1) = "anotherstring" Then 
     MsgBox "match" 
    End If 
Next 
+1

'tLine = Aufteilen (tLine,", ")' ==> 'tLine = Aufteilen (Zeile , ",") ' –

+0

@ Ekkehard.Horner: Danke. Ich sehe diesen Fehler in dem Code nicht, den ich von der Frage kopiert habe. Danke, dass du es aufgezeigt hast. Fest. –