Version 6.0
TEXT TO BLOB (Text; Blob; TextFormat{; Offset | *})
Parameter | Typ | Beschreibung | |
Text | String | Wert vom Typ Text zum Schreiben ins BLOB | |
Blob | BLOB | BLOB zum Empfangen des Wertes vom | |
Typ Text | |||
TextFormat | Numerisch | 0 C String | |
1 Pascal String | |||
2 Text mit Länge | |||
3 Text ohne Länge | |||
Offset | * | Variable | * | Versatz im BLOB (in Bytes) | |
oder * zum Anfügen des Wertes | |||
Neuer Versatz nach Schreiben ohne * |
Beschreibung
Der Befehl TEXT TO BLOB schreibt den Wert Text in Blob.
Der Parameter TextFormat legt das interne Format des zu schreibenden Wertes vom Typ Text fest. Übergeben Sie einen der folgenden vordefinierten Konstanten, die 4th Dimension bietet:
Konstante | Typ | Wert |
C string | Lange Ganzzahl | 0 |
Pascal string | Lange Ganzzahl | 1 |
Text with length | Lange Ganzzahl | 2 |
Text without length | Lange Ganzzahl | 3 |
Die verschiedenen Formate werden im folgenden beschrieben:
Textformat | Beschreibung und Beispiele |
C String | Der Text endet mit dem Zeichen NUL (ASCII Code $00) |
"" $00 | |
"Hello World!" $48 65 6C 6C 6F 20 57 6F 72 6C 64 21 00 | |
Pascal String | Dem Text ist eine 1-Byte Länge vorangestellt |
"" $00 | |
"Hello World!" $0C 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 | |
Text mit Länge | Dem Text ist eine 2-Byte Länge vorangestellt |
"" $00 00 | |
"Hello World!" $00 0C 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 | |
Text ohne Länge | Der Text besteht nur aus seinen Zeichen |
"" Keine Daten | |
"Hello World!" $48 65 6C 6C 6F 20 57 6F 72 6C 64 21 |
Hinweis: Der Befehl akzeptiert sowohl Ausdrücke vom Typ Text (deklariert mit C_TEXT) als auch Strings (deklariert mit C_STRING). Zur Erinnerung: Eine Textvariable kann bis zu 32.000 Zeichen enthalten, eine Stringvariable bis zu der Anzahl, die beim Deklarieren festgelegt wurde (max. 255 Zeichen).
Geben Sie den optionalen Parameter * an, wird der Wert vom Typ Zahl an das BLOB angefügt und die Größe des BLOB entsprechend erweitert. Mit dem optionalen Parameter * können Sie jede Zahl vom Typ Ganzzahl, Lange Ganzzahl, Zahl oder Text (siehe andere BLOB Befehle) sequentiell in einem BLOB speichern, solange der Speicher für das BLOB ausreicht.
Geben Sie den optionalen Parameter * oder den Variablenparameter Offset nicht an, wird der Textwert am Anfang des BLOB gespeichert, der bisherige Inhalt wird überschrieben. Die Größe des BLOB wird entsprechend angepasst.
Übergeben Sie den Variablenparameter Offset, wird der Textwert im BLOB am Byte-Versatz geschrieben (von Null ausgehend). Egal, wo Sie den Wert schreiben, die Größe des BLOB wird gemäß der übergebenen Position erhöht (bei Bedarf bis zur Größe des Textes). Neu zugewiesene Bytes, die Sie nicht schreiben, werden 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 Befehl zum Schreiben eines anderen Wertes verwenden.
Beispiele
1. Nach Ausführen dieses Code:
SET BLOB SIZE (vxBlob;0) C_TEXT (vtValue) vtValue := "Hello World!" ` Länge von vtValue ist 12 Bytes TEXT TO BLOB (vtValue;vxBlob;C string) ` BLOB Größe wird 13 Bytes TEXT TO BLOB (vtValue;vxBlob;Pascal string) ` BLOB Größe wird 13 Bytes TEXT TO BLOB (vtValue;vxBlob;Text with length) ` BLOB Größe wird 14 Bytes TEXT TO BLOB (vtValue;vxBlob;Text without length) ` BLOB Größe wird 12 Bytes
Referenz
BLOB to integer, BLOB to longint, BLOB to real, BLOB to text, INTEGER TO BLOB, LONGINT TO BLOB, REAL TO BLOB.