WriteTable(id, table[, t])
WriteTable(id, table[, txtmode, nobrk])
table
angegebene Hollywood-Tabelle in
die durch id
angegebene Datei. Die Tabelle wird mit dem Serialisierer
serialisiert, der in den optionalen Argumenten angegeben werden kann.
Es wird an der aktuellen Cursorposition in die Datei geschrieben, die Sie mit
dem Befehl Seek() ändern können. In Dateien geschriebene
Tabellen können später mit dem Befehl ReadTable()
wieder in Hollywood-Tabellen geladen werden.
Dieser Befehl ist vollständig rekursiv. Ihre Tabelle kann beliebig viele Untertabellen enthalten. Zusätzlich kann die Tabelle sogar Hollywood-Funktionen enthalten. Siehe unten für ein Beispiel.
WriteTable()
unterstützt mehrere optionale Argumente. Vor Hollywood 9.0
mussten diese als optionale Parameter übergeben werden (siehe oben). Seit
Hollywood 9.0 wird jedoch empfohlen, die neue Syntax zu verwenden, die ein
einzelnes optionales Tabellenargument hat, das verwendet werden kann, um
ein oder mehrere optionale Argumente an WriteTable()
zu übergeben.
Die folgenden Tabellenfelder werden von diesem Befehl erkannt:
Adapter:
xml
) oder einer
der folgenden integrierten Serialisierer sein:
Default:
WriteTable()
standardmäßig den Inbuilt
Serialisierer (siehe unten). Wenn Sie möchten,
dass WriteTable()
den JSON-Serialisierer verwendet, müssen Sie ihn explizit
anfordern, indem Sie Adapter
auf Default
setzen.
Inbuilt:
WriteTable()
seit Hollywood 4.0 verwendet und aus Kompatibilitätsgründen
immer noch der Standard-Serialisierer ist. Er wird jedoch nicht mehr empfohlen,
da dieser Serialisierer Daten ausgibt, die nicht in einem für Menschen lesbaren
Format vorliegen. Die Verwendung des JSON-Serialisierers ist eine viel bessere
Wahl.
Wenn Adapter
nicht angegeben ist, wird standardmäßig der Adapter verwendet,
welcher mit dem Befehl SetDefaultAdapter() gesetzt wurde. Beachten Sie,
dass dieser Standardadapter aus Kompatibilitätsgründen nicht Default
, sondern
Inbuilt
ist. Siehe oben für eine Erklärung.
TextMode:
True
gesetzt werden, um WriteTable()
anzuweisen,
binäre Daten als Text zu exportieren. Beachten Sie, dass der Text auch dann
nicht in einem für Menschen lesbaren Format vorliegt, wenn Sie diesen Tag auf
True
setzen. Wenn Sie die Tabelle in menschenlesbaren Text serialisieren
möchten, verwenden Sie den JSON-Serialisierer (siehe oben). Voreingestellt
ist False
.
NoLineBreak:
TextMode
auf True
gesetzt wurde, fügt WriteTable()
zur besseren
Lesbarkeit automatisch nach jeweils 72 Zeichen Zeilenumbrüche ein. Wenn Sie
das nicht möchten, setzen Sie NoLineBreak
auf True
. In diesem Fall werden
keine Zeilenumbrüche eingefügt. Beachten Sie, dass dieser Tag nur den
(alten) Legacy-Serialisierer von Hollywood betrifft. Es hat keine Auswirkungen auf andere
Serialisierer. Voreingestellt ist False
. (V6.1)
UserTags:
Mode:
Options:
SrcEncoding:
DstEncoding:
mytable = {1, 2, 3, 4, 5, "Hello World", x = 100, y = 150, subtable = {10, 9, 8, 7}, mulfunc = Function(a, b) Return(a*b) EndFunction } OpenFile(1, "table.json", #MODE_WRITE) WriteTable(1, mytable, {Adapter = "default"}) CloseFile(1) OpenFile(1, "table.json", #MODE_READ) newtable = ReadTable(1, {Adapter = "default"}) CloseFile(1) Print(newtable[0], newtable[5], newtable.x, newtable.y, newtable.subtable[0], newtable.mulfunc(9, 9))Der obige Code schreibt die Tabelle mytable in die Datei "table.json". Danach öffnet er die Datei "table.json" erneut und liest die Tabelle wieder in Hollywood ein. Die importierte Tabelle wird in der Variablen
newtable
gespeichert. Schließlich greifen wir auf die neu importierte Tabelle zu und
geben einige ihrer Daten auf dem Bildschirm aus. Die Ausgabe des obigen
Codes lautet "1 Hello World 100 150 10 81".