Bezeichnung
MemToTable -- gibt den Speicherblockinhalt als Tabelle zurück (V6.0)
Übersicht
t = MemToTable(id, type[, table])
Beschreibung
Dieser Befehl kann verwendet werden, um den Inhalt eines Speicherblocks als Tabelle (oder einen Teil eines Speicherblocks) zurückzugeben. Das Argument type gibt den Datentyp der Elemente an, die aus dem Speicherblock gelesen werden sollen. Das kann #BYTE (1 Byte), #SHORT (2 Bytes), #INTEGER (4 Bytes), #FLOAT (4 Bytes) oder #DOUBLE (8 Bytes) sein.

Mit dem optionalen Argument table können weitere Parameter für die Operation gesetzt werden. Folgende Tabellenfelder werden derzeit erkannt:

Items:
Die Anzahl der zu lesenden Elemente aus dem Speicherblock. Beachten Sie, dass dies nicht eine Größe in Bytes ist, sondern eine Elementanzahl. Wenn Sie also das Argument type auf #INTEGER und Items auf 4 setzen, werden 16 Byte aus dem Speicherblock gelesen. Standardmäßig werden alle Elemente im Speicherblock gelesen.

Offset:
Dieses Feld kann verwendet werden, um einen Versatz in Byte innerhalb des Arbeitsspeichers festzulegen, wo MemToTable() Elemente zu lesen beginnt. Die Voreinstellung ist 0, womit vom Anfang des Speicherblocks gelesen wird.

Signed:
Wenn dieser Tag auf True gesetzt ist, wird MemToTable() alle Elemente des Typs #BYTE, #SHORT, und #INTEGER als Werte mit Vorzeichen behandeln. Vorgabe ist False.

EndianSwitch:
Wenn dieser Tag auf True gesetzt ist, wird MemToTable() die Byte-Reihenfolge für alle Multi-Byte-Datentypen wechseln. Dies kann nützlich sein, wenn Sie zwischen Big- und Little-Endian-Werte konvertieren müssen. Vorgabe ist False.

Um eine Tabelle wieder in einen Speicherblock zu konvertieren, verwenden Sie den Befehl TableToMem(). Siehe TableToMem für Details.

Eingaben
id
ID des Speicherblocks
type
Datentyp der zu lesenden Elemente (siehe oben)
table
optional: weitere Tabellen Parameter (siehe oben)
Rückgabewerte
t
eine Tabelle, die so viele Elemente enthält, wie im Tag Items angegeben ist
Beispiel
AllocMem(1, 26)
For Local k = 0 To 25 Do Poke(1, k, 'A' + k, #BYTE)
Local t = MemToTable(1, #BYTE)
For Local k = 0 To 25 Do Print(Chr(t[k]))
Dies gibt das Alphabet einer Speicherblockquelle aus.

Navigation zeigen