4D v16.3

TEXT TO BLOB

Accueil

 
4D v16.3
TEXT TO BLOB

TEXT TO BLOB 


 

TEXT TO BLOB ( texte ; blob {; formatTexte {; offset | *}} )  
Paramètre Type   Description
texte  Chaîne in Texte à écrire dans blob
blob  BLOB in BLOB devant recevoir le texte
formatTexte  Entier long in Format et jeu de caractères du texte
offset | *  Variable, Opérateur in Offset (en octets) dans le BLOB ou * pour ajouter la valeur à la fin du BLOB
in Nouvel offset après l'écriture si * omis

La commande TEXT TO BLOB écrit la valeur de type Texte texte dans le BLOB blob.

Le paramètre formatTexte permet de définir le format interne et le jeu de caractères de la valeur de type Texte à écrire. Pour cela, passez dans formatTexte une des constantes suivantes, placées dans le thème “BLOB” :

Constante Type Valeur
Mac C string Entier long 0
Mac Pascal string Entier long 1
Mac text with length Entier long 2
Mac text without length Entier long 3
UTF8 C string Entier long 4
UTF8 text with length Entier long 5
UTF8 text without length Entier long 6

Si vous omettez le paramètre formatTexte, par défaut 4D utilise le format Mac C string. Dans les bases de données créées à compter de la version 11, 4D travaille par défaut avec le jeu de caractères Unicode (UTF8) pour la gestion des textes, il est donc recommandé d'utiliser ce jeu de caractères.

Notes :

  • Les constantes “UTF8” sont utilisables uniquement lorsque l’application fonctionne en mode Unicode.
  • Les constantes “Mac” ne permettent pas de traiter des textes de plus de 32 ko.
  • Si vous souhaitez manipuler des jeux de caractères autres que UTF8, utilisez la commande CONVERT FROM TEXT.

Le tableau suivant décrit chacun de ces formats :

Format texteDescription et Exemples
Chaîne en C Le texte se termine par un caractère NULL (code ASCII $00).
UTF8"" --> $00
"Café" --> $43 61 66 C3 A9 00
Mac"" --> $00
"Café" --> $43 61 66 8E 00
Chaîne pascalLe texte est précédé d'un octet de longueur.
UTF8-
-
Mac"" --> $00
"Café" --> $04 43 61 66 8E
Texte avec longueurLe texte est précédé de 4 octets (UTF8) ou 2 octets (Mac) de longueur.
UTF8"" --> $00 00 00 00
"Café" --> $00 00 00 05 43 61 66 C3 A9
Mac"" --> $00 00
"Café" --> $00 04 43 61 66 8E
Texte sans longueurLe texte est composé seulement de ses caractères.
UTF8"" --> Pas de valeur
"Café" --> $43 61 66 C3 A9
Mac"" --> Pas de valeur
"Café" --> $43 61 66 8E

Si vous passez le paramètre optionnel *, la valeur de type Texte est ajoutée à la fin du BLOB et la taille de blob est modifiée en conséquence. Ainsi, à l'aide du paramètre optionnel *, vous pouvez stocker les unes derrière les autres autant de valeurs de type Entier, Entier long, Numérique ou Texte (référez-vous aux autres commandes sur les BLOBs) que vous voulez dans un BLOB, la seule limite étant celle de la mémoire disponible.

Si vous ne passez pas le paramètre optionnel * ni de variable dans le paramètre offset, la valeur de type Texte est stockée au début de blob en remplaçant son contenu précédent, et la taille du BLOB est modifiée en conséquence.

Si vous passez une variable dans le paramètre offset, la valeur de type Texte est écrite à l'offset offset, exprimé en octets (à partir de zéro), du BLOB. Quel que soit l'endroit où vous placez la valeur, la taille du BLOB sera augmentée si nécessaire en fonction de l'emplacement que vous avez défini (plus jusqu'à la taille du texte le cas échéant). Les octets redéfinis (autres que ceux que vous venez d'écrire) sont initialisés à la valeur zéro.

Après l'exécution de la commande, la variable du paramètre offset est incrémentée du nombre d'octets ayant été écrits. Vous pouvez par conséquent réutiliser la même variable avec une autre commande d'écriture de BLOB afin de placer une autre valeur juste après celle que vous venez d'écrire.

Exemple  

Après l'exécution de ce code :

 SET BLOB SIZE(vxBlob;0)
 C_TEXT(vtValeur)
 vtValeur:="Café" ` La longueur de vtValeur est de 4 octets
 TEXT TO BLOB(vtValeur;vxBlob;Mac C string` La taille du BLOB devient 5 octets
 TEXT TO BLOB(vtValeur;vxBlob;Mac Pascal string` La taille du BLOB devient 5 octets
 TEXT TO BLOB(vtValeur;vxBlob;Mac text with length` La taille du BLOB devient 6 octets
 TEXT TO BLOB(vtValeur;vxBlob;Mac text without length` La taille du BLOB devient 4 octets
 TEXT TO BLOB(vtValeur;vxBlob;UTF8 C string` La taille du BLOB devient 6 octets
 TEXT TO BLOB(vtValeur;vxBlob;UTF8 text with length` La taille du BLOB devient 9 octets
 TEXT TO BLOB(vtValeur;vxBlob;UTF8 text without length` La taille du BLOB devient 5 octets



Voir aussi  

BLOB to integer
BLOB to longint
BLOB to real
BLOB to text
CONVERT FROM TEXT
INTEGER TO BLOB
LONGINT TO BLOB
REAL TO BLOB

 
PROPRIÉTÉS 

Produit : 4D
Thème : BLOB
Numéro : 554

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Modifié : 4D v11 SQL

 
MOTS-CLÉS 

UTF8, Text

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)