Hier ist noch ein weiterer Tipp, wenn du im 1. Thread eine Changelog führst mit was für Sachen in welchen Versionen dazugekommen sind dann wird dir niemand deswegen böse werden.
Und noch was: Wenn du in C++ die grundlegenden Sachen der Console kannst dann kannst du die Zwischeninstanz AutoIt vergessen und gleich in C++ vom Interpreter konvertieren lassen.
Ich schreib das ganze was ich per PN an Robin98 gesendet hab mal hier rein, damit auch andere einen Blick drauf werfen können!
ZitatAlles anzeigenDu meinst ja in deiner Sprache das man oben Die Zeilen + 2 oder so schreiben soll.
[autoit]
Wieso machst du das nicht so, das wenn du wirklich die Zeilen vom Script brauchst die Anzahle der @CRLFs zählst.
Ein @CRLF ist nichts mehr als ein Zeilenumbruch.;--------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
$sString = "Hallo1234"
$sString = StringReplace($sString, "H", "h")
$sString = StringReplace($sString, "a", "A")
;--------------------------------------------------------#cs
[/autoit] [autoit][/autoit] [autoit]
Zwischen den ;---- befinden sich 3 Zeilen.
Hinter dem "Hallo1234" ist ein Zeilenumbruch oder auch @CRLF (Carriage Return Line Feed) genannt.
Hinter dem ,"h") ist ein @CRLF
und hinter dem , "A") ist ein @CRLF.Somit siehst du das das Script 3 Zeilen hat. Wenn es z.B. so ist:
[/autoit] [autoit][/autoit] [autoit]
#ce;--------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
$sString = "Hallo1234"
$sString = StringReplace($sString, "H", "h")
$sString = StringReplace($sString, "a", "A");--------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#cs
[/autoit]
Dann siehst du, das da 4 Zeilen sind, und wenn dir das nicht passt schaust du ob in dieser Zeile was ist.
Wie macht man das? Du schneidest alles was sich links von dem letzen @CRLF befindet weg (so das nur die letzte Zeile bleibt) oder guckst mit _StringBetween ob zwischen zwei @CRLFs was stehen und löscht die Zeile.
Ich weiß nicht ob das in deinem Interpreter drinne ist aber du könntest überprüfen, wenn ein do{ drinne ist, ob dann ein do} drinne ist.
#ce
Bei deinem Interpreter ist noch SEHR viel zu machen, Syntaxfehlererkennung etc...
Viel Spaß und viel Erfolg von mir!