Ich bin grade am erstellen eines Scripts, welches aus normalen AutoIt-Skript solche macht, die multilingual sind.
Funktionieren soll das so:
Programm liest Zeile für Zeile den Quelltext, ersetzt alle Strings, die in Anführungszeichen sind durch IniReads und schreibt die zugehörigen Texte in eine .ini
Leider funktioniert das nicht so, wie ich mir das denke.
Spoiler anzeigen
#include <String.au3>
$file=FileOpenDialog("Datei auswählen",@ScriptDir,"AutoIt-Skripte (*.au3)",3)
dim $i=0
dim $count=1
While True
$i +=1
;~ MsgBox(0,"",$i)
$oldline=FileReadLine($file,$i)
MsgBox(0,"",$oldline)
If @error = -1 Then ExitLoop
$newline=$oldline
;~ While True
$found=_StringBetween($oldline,"""","""")
If not IsArray($found) Then MsgBox(0,"",$found)
If IsArray($found) Then MsgBox(0,"",$found[0])
;~ MsgBox(0,"",$found[0])
;~ If @error Then ContinueLoop
;~ MsgBox(0,"","Vor iniwrite")
If IsArray($found) Then IniWrite("lang.ini","german",$count,$found[0])
$newline=StringRegExpReplace($oldline,"""*""","IniRead(""lang.ini"",""german""," & $count & ",""Error in language file"")")
$count +=1
;~ WEnd
;~ MsgBox(0,"","multilang-" & $file)
FileWriteLine($file & ".multilang.au3",$newline)
WEnd
Sorry für die vielen auskommentierten Befehle, ich bin noch am rumprobieren.
Aktuell hat er natürlich noch Probleme mit mehreren Strings in einer Zeile, oder gar Anführungszeichen innerhalb von Strings.
Er schreibt korrekt die Daten in die Ini-Datei, nur das ersetzen klappt nicht so, wie ich das möchte.
Wo ist der Fehler?