Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
VARIABLE TO BLOB

VARIABLE TO BLOB 


 

VARIABLE TO BLOB ( Variable ; BLOB {; Offset | *} ) 
Parameter Typ   Beschreibung
Variable  Variable in Variable, die im BLOB gespeichert werden soll
BLOB  BLOB in BLOB, das die Variable empfängt
Offset | *  Variable, Operator in Versatz der Variablen im BLOB (in Bytes) oder *, um Variable am Ende anzufügen
in 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:

  • Zeiger
  • Array mit Zeigern

Bitte beachten Sie folgendes:

  • Speichern Sie eine Variable vom Typ Lange Ganzzahl als Referenz auf eine hierarchische Liste (ListRef), speichert VARIABLE TO BLOB die Variable Lange Ganzzahl und nicht die Liste. Zum Speichern und Wiederfinden hierarchischer Listen in und aus einem BLOB verwenden Sie die Befehle LIST TO BLOB und BLOB to list.
  • Übergeben Sie ein Objekt _O_C_OBJECT oder eine Collection _O_C_COLLECTION im Parameter Variable, setzt der Befehl eine Kopie (keine Referenz) in das BLOB. Enthält das Objekt oder die Collection Zeiger, werden ihre dereferenzierten Werte im BLOB gespeichert und nicht die Zeiger selbst.

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.

Hinweis  

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


Haben Sie diese Methoden hinzugefügt, können Sie schreiben:

 ARRAY TEXT(...;asAnyArray;...)
  //  ...
 SAVE ARRAY($vsDocName;->asAnyArray)
  //  ...
 LOAD ARRAY($vsDocName;->asAnyArray)



Siehe auch 

BLOB to list
BLOB TO VARIABLE
LIST TO BLOB

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: BLOB
Nummer: 532

Dieser Befehl ändert die Systemvariable OKDieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v6
Geändert: 4D v14
Geändert: 4D v16 R4

 
SCHLÜSSELWÖRTER 

Variable, ListRef

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)