VARIABLE TO BLOB

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.0


VARIABLE TO BLOB (Variable; Blob{; Offset | *})

ParameterTypBeschreibung
VariableVariableVariable, die im BLOB gespeichert
werden soll
BlobBLOBBLOB, das die Variable empfängt
Offset | *Variable | *Versatz der Variablen im BLOB
(in Bytes) oder *, um Variable
am Ende anzufügen
Neuer Versatz nach Schreiben ohne *

Beschreibung

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 angepaßt.

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 Plazierung 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 jedenVariablentyp, einschließlich anderer BLOBs. Davon ausgenommen sind:

Zeiger

Array mit Zeigern

Zweidimensionale Arrays

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.

Nach dem Aufruf wird die OK Variable bei erfolgreicher Speicherung der Variablen auf 1 gesetzt. Konnte die Operation nicht ausgeführt werden, wird die OK Variable auf 0 gesetzt; das tritt zum Beispiel ein, wenn nicht genügend Speicher vorhanden ist.

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 Macintosh wiederverwenden und umgekehrt.

Beispiele

1. Mit den beiden nachfolgenden Projektmethoden können Sie Arrays in und aus Dokumenten rasch speichern bzw. wiederfinden:

      ` Projektmethode SAVE ARRAY 
      ` SAVE ARRAY ( String ; Zeiger )
      ` SAVE ARRAY ( Dokument ; -> Array )
   C_STRING (255;$1)
   C_POINTER ($2)
   C_BLOB ($vxArrayData)
   VARIABLE TO BLOB ($2->;$vxArrayData) ` Speichere Array im BLOB
   COMPRESS BLOB ($vxArrayData) ` Komprimiere BLOB
   BLOB TO DOCUMENT ($1;$vxArrayData) ` Sichere BLOB auf Festplatte

      ` Projektmethode LOAD ARRAY
      ` LOAD ARRAY ( String ; Zeiger )
      ` LOAD ARRAY ( Dokument ; -> Array )
   C_STRING (255;$1)
   C_POINTER ($2)
   C_BLOB ($vxArrayData)
   DOCUMENT TO BLOB ($1;$vxArrayData) ` Lade BLOB von Festplatte
   EXPAND BLOB ($vxArrayData) ` Erweitere BLOB
   BLOB TO VARIABLE ($vxArrayData;$2->) ` Finde Array aus dem BLOB wieder

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

   ARRAY STRING (...;asAnyArray;...)
      ` ...
   SAVE ARRAY ( $vsDocName;->asAnyArray)
      ` ...
   LOAD ARRAY ( $vsDocName;->asAnyArray)

2. 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)

Referenz

BLOB to list, BLOB TO VARIABLE, LIST TO BLOB.

Systemvariablen oder Mengen

Wurde die Variable erfolgreich gespeichert, wird die OK Variable auf 1 gesetzt, andernfalls auf 0.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next