Ersetzt in einem String Makros, Variablen und Funktionen durch ihre (Rückgabe-)Werte.
Func EvalString($s, $n=10)
Local $v, $i
$v = StringRegExp($s, "([@$][A-Za-z_0-9]+|[A-Za-z_0-9]+\(.*?\))", 3)
If @error Then Return $s
For $i = 0 To UBound($v)-1
$s = StringReplace($s, $v[$i], Execute($v[$i]))
Next
If ($n > 0) Then $s = EvalString($s, $n-1)
Return $s
EndFunc
Verwendung:
- für Logdateien
- um Funktionsaufrufe und ähnliches so richtig schön unleserlich zu machen...
Nachteile:
- Alle verwendeten Variablen müssen Global sein.
Beispiel:
MsgBox(0, "", EvalString("Es ist @HOUR:@MIN Uhr. Der zur Zeit angemeldete Benutzer heißt @UserName."))
MfG, James