4D v16.3

COMPRESSER BLOB

Accueil

 
4D v16.3
COMPRESSER BLOB

COMPRESSER BLOB 


 

COMPRESSER BLOB ( blob {; compression} ) 
Paramètre Type   Description
blob  BLOB in BLOB à compresser
compression  Entier long in Si ce paramètre est passé : 1= taux de compression maximum 2 = vitesse de compression maximum

COMPRESSER BLOB compresse le BLOB blob à l'aide d'un algorithme de compression.

Le paramètre optionnel compression vous permet de fixer la façon dont le BLOB sera compressé. Passez dans ce paramètre une des constantes suivantes, placées dans le thème BLOB :

Constante Type Valeur Comment
GZIP méthode de compression compacte Entier long -1 Compression GZIP la plus compacte (au détriment de la vitesse à laquelle la compression et la décompression sont effectuées)
GZIP méthode de compression rapide Entier long -2 Compression/décompression GZIP la plus rapide (au détriment du taux de compression)
Méthode de compression compacte Entier long 1 Compression interne la plus compacte (au détriment de la vitesse à laquelle la compression et la décompression sont effectuées). Méthode par défaut.
Méthode de compression rapide Entier long 2 Compression/décompression interne la plus rapide au détriment du taux de compression (une fois compressé, le BLOB prend plus de place)

Si vous passez une autre valeur ou si vous omettez le paramètre compression, la méthode de compression 1 est utilisée (algorithme interne compact).

Note : La commande compresse uniquement les BLOBs de taille supérieure ou égale à 255 octets.

Après que cette commande ait été appelée, la variable système OK prend la valeur 1 si le BLOB a été correctement compressé.
Si la compression n'a pu être effectuée, OK prend la valeur 0. Dans ce cas, si l'erreur provient du fait que la taille du BLOB est inférieure à 255 octets ou que la mémoire disponible est insuffisante pour effectuer l'opération, aucune erreur n'est générée, la méthode poursuit son exécution.
En revanche, si l'erreur est causée par un problème plus important (le BLOB est endommagé), l'erreur -10600 est générée. Cette erreur, relativement rare, peut être interceptée à l'aide d'une méthode installée par la commande APPELER SUR ERREUR.

Lorsqu'un BLOB a été compressé, vous pouvez le décompresser à l'aide de la commande DECOMPRESSER BLOB.

Pour savoir si un BLOB a été compressé, utilisez la commande LIRE PROPRIETES BLOB.

ATTENTION : Un BLOB compressé est toujours un BLOB, rien ne vous empêche donc de modifier son contenu. Cependant, si vous le modifiez, la commande DECOMPRESSER BLOB ne pourra plus décompresser correctement le BLOB.

L'exemple suivant teste si le BLOB vxMonBlob est compressé et, sinon, le compresse :

 LIRE PROPRIETES BLOB(vxMonBlob;$vlCompressé;$vlTailleDécompressée;$vlTailleCourante)
 Si($vlCompressé=Non compressé)
    COMPRESSER BLOB(vxMonBlob)
 Fin de si

Notez que si vous appliquez COMPRESSER BLOB à un BLOB déjà compressé, la commande le détecte et ne fait rien.

L'exemple suivant vous permet de sélectionner un document puis de le compresser :

 $vhDocRef :=Ouvrir document("")
 Si(OK=1)
    FERMER DOCUMENT($vhDocRef)
    DOCUMENT VERS BLOB(Document;vxBlob)
    Si(OK=1)
       COMPRESSER BLOB(vxBlob)
       Si(OK=1)
          BLOB VERS DOCUMENT(Document;vxBlob)
       Fin de si
    Fin de si
 Fin de si

Envoi de données HTTP brutes compressées en GZIP :

 COMPRESSER BLOB($blob;GZIP méthode de compression compacte)
 C_TEXTE($vEncoding)
 $vEncoding:="Content-encoding: gzip"
 WEB FIXER ENTETE HTTP($vEncoding)
 WEB ENVOYER DONNEES($blob ;*)

La variable OK prend la valeur 1 si le BLOB a été correctement compressé, sinon elle prend la valeur 0.



Voir aussi  

DECOMPRESSER BLOB
LIRE PROPRIETES BLOB

 
PROPRIÉTÉS 

Produit : 4D
Thème : BLOB
Numéro : 534
Nom intl. : COMPRESS BLOB

Cette commande modifie la variable système OKCette commande modifie la variable système Error

 
HISTORIQUE 

Modifié : 4D v6.5.3
Modifié : 4D v13

 
MOTS-CLÉS 

Compression, blob compression

 
UTILISATION DE L'ARTICLE

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