;-- TIME_STAMP 2022-05-20 16:37:00 Global $LuaRunner = @ScriptDir & '\LuaRunner.exe' Global $LuaTestFunc = @ScriptDir & '\LuaRunnerExampleFile.lua' ; Besonderheit bei der Globalen Variable "arg". Dies ist ein Table mit Wert an Index[0] - der Pfad des Lua-Skripts. ; Lua-Table werden sonst mit 1-basiertem Index verwendet. ; An den weiteren Positionen sind die Aufrufparameter des Lua-Skripts enthalten. FileWrite($LuaTestFunc, _ "print('calling file', arg[0])" & @LF & _ "if #arg > 1 then" & @LF & _ " for i=1, #arg do print('param', i, arg[i]) end" & @LF & _ "else" & @LF & _ " print('param', 'NONE')" & @LF & _ "end" & @LF) ; Um Probleme mit Stringbegrenzern zu vermeiden sollten Strings im Lua Code mit Longstringbegrenzern "[[longstring]]" verwendet werden _Example_LuaLine() MsgBox(0, 'Example', 'Next') _Example_LuaFile_w_Param() MsgBox(0, 'Example', 'Next') _Example_LuaFile_w_Param(6) FileDelete($LuaTestFunc) Func _Example_LuaLine() Local $sText = "Finde das Wort Lua und gib die Start- / Endposition aus." Local $sCmd = StringFormat('"%s" -l "%s"', $LuaRunner, 'text = [[' & $sText & ']] s, e = text:find([[Lua]]) print(s, e)') RunWait($sCmd) ConsoleWrite($sText & @CRLF & 'Ergebnis: ' & FileRead(@ScriptDir & '\LuaRunner_Result.txt') & @CRLF) EndFunc Func _Example_LuaFile_w_Param($n=2) Local $p1 = 'PARAM-1', $p2 = 'PARAM-2', $p3 = 'PARAM-3', $p4 = 'PARAM-4', $p5 = 'PARAM-5', $p6 = 'PARAM-6' Local $sCmd = StringFormat('"%s" -f "%s" "%s" "%s"', $LuaRunner, $LuaTestFunc, $p1, $p2) If $n = 6 Then $sCmd = StringFormat('"%s" -f "%s" "%s" "%s" "%s" "%s" "%s" "%s"', $LuaRunner, $LuaTestFunc, $p1, $p2, $p3, $p4, $p5, $p6) RunWait($sCmd) ConsoleWrite('Ergebnis:' & @CRLF & FileRead(@ScriptDir & '\LuaRunner_Result.txt') & @CRLF) EndFunc