Moin moin,
ich hoffe, mir kann geholfen werden (bin noch nicht so autoit erfahren)
Ich quäle mich mit dem Umsetzen von Dateien. Bspw. um Koordinaten umzustellen usw. .
Zu mir: GUI hab ich für einiges inzwischen, Umsetzungen via StringRegExpReplace bekomm ich hin ...
Ich lese quasi eine Datei ein und schreibe sie in eine andere um.
Und jetzt kommt der Haken:
Ich möchte an bestimmten Stellen in der neuen Datei Bemerkungen einfügen. Diese Bemerkungen soll mein Script aus vorherigen Eingaben (Variable in einer InputBox) übernehmen.
Variablen dim & Inputbox kriege ich hin. Den StringRegExpReplace inc. Dateischreibere auch (da habt ihr mir hier damals schon sehr geholfen).
Aber mir scheint es so, als ob er bei StringRegExpReplace keine "externen" Variablen im gegensatz zu festen Textpassagen einfügen kann ?
Wie kann ich das lösen ?
Beispiel (Auszug aus meinem Script):
[autoit]Case $msg = $al ;~ Ereignis 21, der Knopf wird gedrückt
$sFilename = FileOpenDialog('Bitte Textdatei zum konvertieren auswählen', @ScriptDir, 'Text (*.pkt)', 1) ; Dialogbox zum auswählen der Datei
If @error Then Exit ; wenn der Benutzer auf 'abbrechen' geklickt hat, dann Script beenden
$sText = FileRead($sFilename) ; Datei einlesen
$sText = StringRegExpReplace($sText, '(.{3}) (.{4}) (.{5})', 'aaa $3 $2 $1 bbb') ; die Formatierung ändern
$sNewFilename = StringRegExpReplace($sFilename, '(.+)\.*', '$1.al') ; Neuen Dateinamen generieren
$hFile = FileOpen($sNewFilename, 2) ; Datei zum schreiben öffnen
If $hFile <> -1 Then ; wenn erfolgreich, dann...
FileWrite($hFile, $sText) ; neuen Text schreiben
FileClose($hFile) ; Datei schließen
EndIf
So in etwa sieht das Replace aus. Klappt alles. "aaa" und "bbb" als einfache zu übernehmenden feste Werte auch.
Ich möchte aber hier eine vorher abgefragte Variable einfügen.
Bspw. stecke ich ein "xyz" via Inputbox vorher in die Variable $test. Und anstelle des "aaa" möchte ich an dieser Stelle den Wert aus $test, sodass am Ende in der Zieldatei nicht "aaa" steht sondern das vorher abgefragte "xyz".
Ich sitz da jetzt schon viele Stunden drann aber finde keine Lösung. Setze ich bspw. $test ein (wie im Beispiel auch die aus der Datei $3) schreibt er mir "$test" in die Ausgabedatei, nicht den Inhalt der Variablen.
Ich vermute inzwischen, dass das nur mit StringRegExpReplace gar nicht möglich ist ?