Hallo,
Kurzfassung Ich suche eine Lösung für:
Finde eine Zeile die mit X beginnt, prüfe dann, ob die nächste Zeile mit Y beginnt und wenn ja, dann tausche beide Zeilen und füge eine weitere Zeile Z hinzu - für alle Zeilen in einer Textdatei.
Langfassung:
ich möchte in einer Textdatei ( *.txt ) Zeilen tauschen und hinzufügen, ohne dass ich die Datei als array einlese, zeilenweise abarbeite und in eine neue Datei schreiben muss.
Sollte das jedoch die beste Möglichkeit sein, folgendes Problem zu lösen, freue ich mich über Anregungen.
Vielleicht hat jemand so ein Skript bereits in AutoIt geschrieben.
PS: wie formuliert man das Problem auf Englisch – im englischen Forum fand ich nichts unter „swap lines“?
Vereinfacht ausgedrückt möchte ich folgendes:
Ich suche nach einer Zeile die mit folgendem Text beginnt „# 2“
$suche = "# 2"
If StringLeft ( $aktuelle_Zeile, 3) = $suche Then
EndIf
Die darauffolgende Zeile muss mit "# 1" beginnen.
Also in der ersten IF Abfrage eine zweite
$suche = "# 1"
If StringLeft ( $nächste_Zeile, 3) = $suche Then
EndIf
Meine Probleme beginnen bereits an dieser Stelle:
Wenn ich den Text in einem Array habe und das Array zeilenweise durchgehe, und ich treffe auf eine Fundstelle ("# 2" gefunden), wie kann in der zweiten IF-Abfrage (suche nach "# 1") bereits in der nächste Zeile ( "# 1" ) suchen, obwohl ich noch im array in der vorigen Zeile ( " # 2" ) bin? ( siehe Beispiel )
Gibt es eine vereinfachte Lösung in AutoIt, die so lautet:
Daher
Finde eine Zeile die mit X beginnt, prüfe dann, ob die nächste Zeile mit Y beginnt und wenn ja, dann tausche beide Zeilen und füge eine weitere Zeile Z hinzu.
( klingt einfach, aber irgendwie beiße ich mir daran die Zähne aus )
Beispiel
Quelle - Die Textdatei enthält einen Text mit folgender Struktur:
# 2 beliebiger Text
# 1 juhu ein Sandkorn
... viele Zeilen
# 2 beliebiger Text
# 1 juhu ein Korn
... viele Zeilen
Nach der Bearbeitung mit dem AutoIt-Skript soll die Datei wie folgt aussehen:
# 1 juhu ein Sandkorn
# 2 beliebiger Text
# 3 juhu ein Sandkorn
... viele Zeilen
# 1 juhu ein Sandkorn
# 2 beliebiger Text
# 3 juhu ein Korn
Vielen Dank