2016-08-31 10 views
3

私は、ファイルで抽出した値の1つにトリム(str)を使うたびにコンマ区切りのテキストファイルを読み込むスクリプトを用意しています...Vbscriptトリム関数

私のテキストファイル:

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

マイスクリプト:

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 

は私のスクリプトは、 "一致" に達することはありませんし、私はなぜわかりません。

+0

範囲外のエラーが発生していますか? – STLDeveloper

+0

エラーなし、ちょうどトリムしません – tarki

+1

'trim(" some strings、anotherstring、onelaststring ")は決して' 'anotherstring" 'と等しくありません。おそらく、あなたは線を "、"に分割したいでしょうか? –

答えて

3

Trim()は、トリミングされた文字列を返す関数です。コードで不適切に使用されています。

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

または値を格納するために別の変数を使用し、比較している別の変数を使用し、

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

またはあなただけの直接関数の戻り値を使用することができます:あなたは、戻り値を使用する必要があります比較して、

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

はここにあなたのコードのその部分の修正版です:

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 =分割(tLine、"、 ")' ==> 'tLine =分割、 "、") ' –

+0

@ Ekkehard.Horner:ありがとうございます。 DIdは、質問からコピーしたコードにそのエラーが表示されません。それを指摘してくれてありがとう。一定。 –

関連する問題