BLOB to text

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

Version 6.7 (Geändert)


BLOB to text (Blob; TextFormat{; Offset{; TextLänge}}) Text

ParameterTypBeschreibung
BlobBLOBBLOB zum Entnehmen des Textwertes
TextFormatNumerisch0  C String
1  Pascal String
2  Text mit Länge
3  Text ohne Länge
OffsetVariableVersatz im BLOB (in Bytes)
Neuer Versatz nach dem Lesen
TextLängeNumerischAnzahl der zu lesenden Zeichen
FunktionsergebnisTextTextwert

Beschreibung

Die Funktion BLOB to text gibt einen aus Blob gelesenen Textwert zurück. Der Parameter TextFormat legt das interne Format des zu schreibenden Wertes vom Typ Text fest. Übergeben Sie eine der folgenden vordefinierten Konstanten, die 4th Dimension bietet:

KonstanteTypWert
C stringLange Ganzzahl0
Pascal stringLange Ganzzahl1
Text with lengthLange Ganzzahl2
Text without lengthLange Ganzzahl3

Die verschiedenen Formate werden im folgenden beschrieben:

TextformatBeschreibung 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 StringDem 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ängeDem 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ängeDer Text besteht nur aus seinen Zeichen
"" Keine Daten
"Hello World!" $48 65 6C 6C 6F 20 57 6F 72 6C 64 21

Warnung: Die Anzahl der zu lesenden Zeichen wird durch den Parameter TextFormat festgelegt, mit Ausnahme des Formates Text ohne Länge. Dafür müssen Sie im Parameter TextLänge die Anzahl der Zeichen festlegen. Dieser Parameter wird für die anderen Formate ignoriert. Sie müssen keinen Wert eintragen.

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). Versuchen Sie mehr Daten zu lesen, als die Variable aufnehmen kann, schneidet 4D das Ergebnis des Befehles beim Einsetzen in die Variable ab.

Geben Sie den optionalen Parameter Offset an, wird der Textwert im BLOB am Versatz gelesen (beginnend bei Null). Geben Sie den optionalen Variablenparameter Offset nicht an, wird der Anfang des Blob gemäß dem in TextFormat übergebenen Wert gelesen. Beachten Sie, daß Sie beim Lesen von Text ohne Länge den Variablenparameter Offset übergeben müssen.

Hinweis: Übergeben Sie als Versatz einen Wert (in Bytes) zwischen 0 (Null) und der BLOB-Größe minus der zu lesenden Textgröße. Andernfalls ist das Funktionsergebnis nicht vorhersehbar.

Nach dem Aufruf wird die Variable um die Anzahl der gelesenen Bytes erhöht. Von daher können Sie dieselbe Variable mit einem anderen BLOB Befehl zum Schreiben eines anderen Wertes verwenden.

Beispiel

Folgendes Beispiel liest eine hypothetische MacOS Ressource, deren internes Format mit den 'STR#' Ressourcen identisch ist:

   GET RESOURCE ("ABCD";viResID;vxResData;viMyResFile)
   vlSize:=BLOB size(vxResData)
   If (vlSize>0)
         ` Die Ressource beginnt mit einer 2-byte Zahl für die Anzahl der Strings
      vlOffset:=0
      viNbEntries:=BLOB to integer(vxResData;Macintosh Byte Ordering;vlOffset)
         ` Die Ressource enthält dann verkettete und ungefüllte Pascal Strings
      For (viEntry;1;viNbEntries)
         If (vlOffset<vlSize)
            vsEntry:=BLOB to text(vxResData;Pascal string;vlOffset)
               ` Führe etwas aus mit vsEntry
         Else
               ` Ressource data ist ungültig, verlasse die Schleife
            viEntry:=viNbEntries+1
         End if
      End for
   End if

Referenz

BLOB to integer, BLOB to longint, BLOB to real, INTEGER TO BLOB, LONGINT TO BLOB, REAL TO BLOB, TEXT TO BLOB.


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