Bei der Suche nach bestimmten string in eine text-Datei mit VBS-Skript

Ich muss die Zeichenfolge "Test Case" & index in eine txt-Datei.

Ich gebe Ihnen ein Beispiel, die Zeilen, die Sie finden in dieser Datei:

<tr><td><a href="../../Login/Log_ in_U1A1">Log_ in_U1A1</a></td></tr>
<tr><td><a href="../Test case 5 DD/Form1">Form1</a></td></tr>

Wie Sie sehen können, in der zweiten Zeile habe ich ein vorkommen der Zeichenfolge "Test-Fall".

Was ich will zu tun ist, fügen Sie einen anderen bestimmten string in der Zeile, die vorausgeht wo der "Test-Fall 5" wird angezeigt. Zum Beispiel:

<tr><td><a href="../../Login/Log_ in_U1A1">Log_ in_U1A1</a></td></tr>
<tr><td><a href="../../Logs/DD/Beginning_of_DD_TC5.html">Beginning_of_DD_TC5</a></td></tr>
<tr><td><a href="../Test case 5 DD/Form1">Form1</a></td></tr>

Es ist auch wichtig, dass die Zeile füge ich einen index i, die abhängig von der Test-Fall-Nummer, und ich muss hinzufügen, dass es vor dem ersten vorkommen von "Test cases" & ich, i dont care über die folgenden Ereignisse.

Getestet habe ich, wenn InStr-Funktion gearbeitet, mit einem Beispiel:

Dim objFSO, filepath, objInputFile, tmpStr, substrToFind
Set objFSO = CreateObject("Scripting.FileSystemObject")
filepath = "C:\VBS\filediprova.txt"
substrToFind = "<tr><td><a href=" & chr(34) & "../Test case 5"
Set objInputFile = objFSO.OpenTextFile(filepath)
tmpStr = objInputFile.ReadLine
If InStr(tmpStr, substrToFind) <= 0 Then
   WScript.Echo "No matches"
Else
   WScript.Echo "Found match"
End If

Und es funktioniert, er erkennt meine substring. In diesem kleinen Beispiel der txt-Datei nur contans die followingline:

<tr><td><a href="../Test case 5 DD/Form1">Form1</a></td></tr>

Nun, wenn ich versuche, eine Schleife über eine Datei mit viel mehr Zeilen ich habe ein problem, ich benutze den gleichen InStr-Funktion.
Ich schrieb die folgende Schleife:

Do until objInputFile.AtEndOfStream
   strToAdd = "<tr><td><a href=" & chr(34) & "../../Logs/DD/Beginning_of_DD_TC" & CStr(index) & ".html" & chr(34) & ">Beginning_of_DD_TC" & CStr(index) & "</a></td></tr>"
   substrToFind = "<tr><td><a href=" & chr(34) & "../Test case " & index
   firstStr = "<?xml version" 'my file always starts like this
   tmpStr = objInputFile.ReadLine
   If InStr(tmpStr, substrToFind) <= 0 Then
       If Instr(tmpStr, firstStr) > 0 Then
          text = tmpStr 'to avoid the first empty line
       Else
          text = text & vbCrLf & tmpStr
       End If
   Else
      text = text & vbCrLf & strToAdd & vbCrLf & tmpStr
      index = index + 1
   End If
Loop

Was ist falsch?

InformationsquelleAutor Luceye85 | 2013-05-25

Schreibe einen Kommentar