Per Vbscript bestimmte Zeile ungeachtet der Nummerierung prüfen
Guten Morgen an alle
Der folgende Vbscript fügt einer Texdatei eine bestimmte Zeile ein, das klappt soweit...
Nun sollte der Script diese Zeile nicht einfügen wenn Zeile (ungeachtet der Numerierung!!) bereits vorhanden ist!
Besten Dank in Voraus für Eure Hilfe!
Der folgende Vbscript fügt einer Texdatei eine bestimmte Zeile ein, das klappt soweit...
Nun sollte der Script diese Zeile nicht einfügen wenn Zeile (ungeachtet der Numerierung!!) bereits vorhanden ist!
Dim objShell,appdata
Set objShell = CreateObject("wscript.shell")
appdata = objShell.ExpandEnvironmentStrings("%appdata%")
strNewLine = "SimObjectPaths.*=Addon Scenery\Europe\Italy\AnconaX\simobjects"
strFileName = appdata & "\Microsoft\FSX\fsx.cfg"
Const FOR_READING = 1
Const FOR_WRITING = 2
strCheckForString = UCase("SimObjectPaths")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile(strFileName, FOR_READING)
strContents = objTS.ReadAll
objTS.Close
arrLines = Split(strContents, vbNewLine)
Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)
For i = 0 To UBound(arrLines)
if Len(arrLines(i)) >= Len(strCheckForString) then
If Left(UCase(LTrim(arrLines(i))),Len(strCheckForString)) = strCheckForString and Left(UCase(LTrim(arrLines(i+1))),Len(strCheckForString)) <> strCheckForString Then
num = CInt(Split(Split(arrLines(i),".")(1),"=")(0)) + 1
objTS.WriteLine arrLines(i) & vbNewline & Replace(strNewLine,"*",num)
else
objTS.WriteLine arrLines(i)
End If
Else
objTS.WriteLine arrLines(i)
End if
next
objTS.Close
Besten Dank in Voraus für Eure Hilfe!
Please also mark the comments that contributed to the solution of the article
Content-Key: 323605
Url: https://administrator.de/contentid/323605
Printed on: April 26, 2024 at 12:04 o'clock
7 Comments
Latest comment
regex.Pattern = "SimObjPaths.*=Addon Scenery\Europe\Italy\AnconaX\simobjects"
Das kann ja bei dem Regex nichts werden... Backslashes und viele andere Sonderzeichen müssen im Pattern natürlich escaped werden.regex.Pattern = "SimObjPaths.*?=Addon Scenery\\Europe\\Italy\\AnconaX\\simobjects"
SimObjectPaths
Schau dir den Regex und deine Textdatei nochmal an, dann siehst du den Fehler SimObjPathsMal wieder nicht gefrühstückt was