Bezeichnung
WriteFunction -- schreibt eine Funktion in eine Datei (V4.0)
Übersicht
WriteFunction(id, func[, txtmode, nobrk])
Beschreibung
Dieser Befehl schreibt die in func angegebene Funktion in die in id angegebene Datei an der aktuellen Cursorposition der Datei, die Sie mit dem Befehl Seek() ändern können. Die Funktion wird in die Datei als vorkompilierter Bytecode geschrieben werden, das heißt, für Menschen ist er nicht lesbar.

Sie können mit Hilfe des Befehls ReadFunction() gespeicherte Funktionen in andere Projekte laden. Das optionale Argument txtmode gibt an, ob die Funktion als binäre oder als Base64-codierte Daten in die Datei geschrieben wird. Letzteres ist nützlich für die Einbettung von Funktionen in für Menschen lesbare Text-Dateien wie zum Beispiel XML-Dateien. Für den Fall setzen Sie txtmode auf True und WriteFunction() wird dann für eine bessere Lesbarkeit jeweils nach 72 Zeichen automatisch einen Zeilenumbruch einfügen. Wenn Sie diesen Zeilenumbruch nicht wollen, setzen Sie das optionale Argument nobrk auf True. In diesem Fall werden keine Zeilenumbrüche eingefügt.

Eingaben
id
Datei, in der geschrieben wird
func
Funktion, die in die Datei geschrieben wird
txtmode
optional: True, um die Funktion in Base64 oder False, um als Binärdaten zu schreiben (voreingestellt ist False)
nobrk
optional: True, wenn Sie keine Zeilenumbrüche in für Menschen lesbaren Text wollen (voreingestellt ist False); dieses Argument wird bei Binärdaten ignoriert (V6.1)
Beispiel
Function p_LittleTestFunc(a, b)
  Return(a+b)
EndFunction

OpenFile(1, "func.bin", #MODE_WRITE)
WriteFunction(1, p_LittleTestFunc)
CloseFile(1)

OpenFile(1, "func.bin", #MODE_READ)
p_MyAdd = ReadFunction(1)
CloseFile(1)

Print(p_MyAdd(5, 6))  ; gibt 11 aus
Der obige Code schreibt die Funktion p_LittleTestFunc() in die Datei "func.bin". Danach öffnet sich die Datei "func.bin" wieder und es wird die Funktion in Hollywood zurück gelesen. Die eingelesene Funktion wird der Variablen p_MyAdd() zugewiesen. schließlich wird die neue Funktion p_MyAdd() aufgerufen und es werden die Nummern 5 und 6 für uns summiert.

Navigation zeigen