Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
VARIABLE TO BLOB
|
VARIABLE TO BLOB ( Variable ; BLOB {; Offset | *} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Variable | Variable |
![]() |
Variable, die im BLOB gespeichert werden soll | |||||
BLOB | BLOB |
![]() |
BLOB, das die Variable empfängt | |||||
Offset | * | Variable, Operator |
![]() |
Versatz der Variablen im BLOB (in Bytes) oder *, um Variable am Ende anzufügen | |||||
![]() |
Neuer Versatz nach Schreiben ohne * | |||||||
Der Befehl VARIABLE TO BLOB speichert die Variable Variable in BLOB.
Mit dem optionalen Parameter * wird die Variable im BLOB angefügt und dessen Größe entsprechend erweitert. Mit dem optionalen Parameter * können Sie beliebig viele Variablen oder Listen sequentiell in einem BLOB speichern (siehe andere BLOB Befehle), solange der Speicher dafür ausreicht.
Geben Sie den optionalen Parameter * bzw. den Variablenparameter Offset nicht an, wird die Variable am Anfang des BLOB gespeichert. Sie überschreibt seinen bisherigen Inhalt; die Größe des BLOB wird entsprechend angepasst.
Geben Sie den Variablenparameter Offset an, wird die Variable am Versatzpunkt (beginnend mit Null) geschrieben. Unabhängig, wo Sie die Variable schreiben, wird die Größe des BLOB gemäß der übergebenen Positionierung erhöht, falls notwendig plus der Größe der Variablen. Neu zugewiesene Bytes werden im Gegensatz zu den geschriebenen Bytes auf Null initialisiert.
Nach dem Aufruf wird der Variablenparameter Offset zurückgegeben, erhöht um die Anzahl der geschriebenen Bytes. Von daher können Sie dieselbe Variable mit einem anderen BLOB schreibenden Befehl wiederverwenden, um eine andere Variable oder Liste zu schreiben.
VARIABLE TO BLOB akzeptiert jeden Variablentyp, einschließlich anderer BLOBs. Davon ausgenommen sind:
Bitte beachten Sie folgendes:
Speichern Sie jedoch eine Variable Lange Ganzzahl, die eine Referenz auf eine hierarchische Liste ist (ListRef), speichert VARIABLE TO BLOB die Variable Lange Ganzzahl und nicht die Liste. Um hierarchische Listen in und aus einem BLOB zu speichern und zu finden, verwenden Sie die Befehle LIST TO BLOB und BLOB to list.
Warnung: Speichern Sie Variablen in einem BLOB, müssen Sie später mit dem Befehl BLOB TO VARIABLE den Inhalt des BLOB auslesen, da Variablen in BLOBs mit einem internen 4D Format gespeichert werden.
Hinweis zur Plattformunabhängigkeit: VARIABLE TO BLOB und BLOB TO VARIABLE verwalten die in BLOBs gespeicherten Variablen in einem internen 4D Format. Beim Einsetzen dieser beiden Befehle müssen Sie sich deshalb nicht um den Austausch von Bytes zwischen den Plattformen kümmern. Mit anderen Worten, Sie können ein unter Windows erstelltes BLOB auf macOS wiederverwenden und umgekehrt.
Kompatibilitätshinweis: Da dieser Befehl den als Parameter übergebenen Blob verändert, unterstützt er keine Blob-Objekte (Typ 4D.Blob). Siehe Übergabe von Blobs und Blob-Objekten an 4D Befehle auf developer.4d.com.
Wurde die Variable erfolgreich gespeichert, wird die OK Variable auf 1 gesetzt, andernfalls auf 0. Das tritt zum Beispiel ein, wenn nicht genügend Speicher vorhanden ist.
Mit den beiden nachfolgenden Projektmethoden können Sie jede Variablenmenge in und aus einem BLOB speichern bzw. wiederfinden:
` Projektmethode STORE VARIABLES INTO BLOB
` STORE VARIABLES INTO BLOB ( Zeiger { ; Zeiger ... { ; Zeiger } } )
` STORE VARIABLES INTO BLOB ( BLOB { ; Var1 ... { ; Var2 } } )
C_POINTER(${1})
C_LONGINT($vlParam)
SET BLOB SIZE($1->;0)
For($vlParam;2;Count parameters)
VARIABLE TO BLOB(${$vlParam}->;$1->;*)
End for
` Projektmethode RETRIEVE VARIABLES FROM BLOB
` RETRIEVE VARIABLES FROM BLOB ( ´Zeiger { ; Zeiger ... { ; Zeiger } } )
` RETRIEVE VARIABLES FROM BLOB ( BLOB { ; Var1 ... { ; Var2 } } )
C_POINTER(${1})
C_LONGINT($vlParam;$vlOffset)
$vlOffset:=0
For($vlParam;2;Count parameters)
BLOB TO VARIABLE($1->;${$vlParam}->;$vlOffset)
End for
Haben Sie diese Methoden hinzugefügt, können Sie schreiben:
STORE VARIABLES INTO BLOB(->vxBLOB;->vgPicture;->asAnArray;->alAnotherArray)
` ...
RETRIEVE VARIABLES FROM BLOB(->vxBLOB;->vgPicture;->asAnArray;->alAnotherArray)
Mit den beiden nachfolgenden Projektmethoden können Sie Arrays in und aus Dokumenten rasch speichern bzw. wiederfinden:
// Projektmethode SAVE ARRAY
// SAVE ARRAY (Text ; Zeiger)
// SAVE ARRAY (Dokument ; -> Array)
C_TEXT($1)
C_POINTER($2)
C_BLOB($vxArrayData)
VARIABLE TO BLOB($2->;$vxArrayData) // Array im BLOB speichern
COMPRESS BLOB($vxArrayData) // BLOB komprimieren
BLOB TO DOCUMENT($1;$vxArrayData) // BLOB auf Festplatte sichern
// Projektmethode LOAD ARRAY
// LOAD ARRAY (Text ; Zeiger)
// LOAD ARRAY (Dokument ; -> Array)
C_TEXT($1)
C_POINTER($2)
C_BLOB($vxArrayData)
DOCUMENT TO BLOB($1;$vxArrayData) // BLOB von der Festplatte laden
EXPAND BLOB($vxArrayData) // BLOB erweitern
BLOB TO VARIABLE($vxArrayData;$2->) // Array aus dem BLOB wiederfinden
ARRAY TEXT(...;asAnyArray;...)
// ...
SAVE ARRAY($vsDocName;->asAnyArray)
// ...
LOAD ARRAY($vsDocName;->asAnyArray)
Produkt: 4D
Thema: BLOB
Nummer:
532
Erstellt: 4D v6
Geändert: 4D v14
Geändert: 4D v16 R4
Variable, ListRef
4D Programmiersprache ( 4D v20 R7)