Salve,
ich möchte aus einer Datei Zeilen einlesen und wenn die Zeile bestimmte Zeichen wie z.B. "[][]" enthält, dann soll der Zeileninhalt mit dem Inhalt der zuvor eingelesenen Zeile mit den Zeichen "[][]" verglichen werden. (Falls zuvor schon eine Zeile mit den Zeichen "[][]" eingelesen wurde.)
Beispiel:
Zeile 1: Hallo Welt ! => Zeile ignorieren, nächste Zeile einlesen
Zeile 2: [D:\Programme\AutoIt3] => Zeile in Datei schreiben
Zeile 3: [D:\Programme\AutoIt3\SciTE] => Zeile ignorieren, wenn Zeile 3 Zeile 2 beinhaltet
Zeile 4: [D:\Programme\Schnulli] => Zeile wird in Datei geschrieben
So soll der Ablauf sein, aber ich kriege es einfach nicht hin..., bei meinem Script wird eine Endlosschleife erzeugt , schon beim lesen, es wird nichts geschrieben ! :irre:
Spoiler anzeigen
Local $vResult, $vRes, $Unkeyname
$file = FileOpen($regsource, 0)
if @error = 1 Then MsgBox(0,"error", "error")
While 1
$line = FileReadLine($file)
$sPattern = "[][]"
$vResult = StringRegExp($line, $sPattern, 1)
Select
Case @error = 0
If @extended Then
$vCompare1 = StringRegExpReplace(StringRegExpReplace($line, $sPattern, ""), "\\", "")
$vCompare2 = StringRegExpReplace(StringRegExpReplace($Unkeyname, '"', ""), "\\", "")
$vRes = StringRegExp($vCompare1, $vCompare2, 1)
Select
Case @error = 1
$Unkeyname = StringRegExpReplace($line, $sPattern, '"')
FileWriteLine($UnRegScript, "RegDelete(" & $Unkeyname & ")")
Case @error = 0
EndSelect
EndIf
Case @error = 1
EndSelect
WEnd
[/autoit]