version 6.5.3 (Modifiée)
COMPRESSER BLOB (blob{; compression})
Paramètre | Type | Description | |
blob | BLOB | BLOB à compresser | |
compression | Numérique | Si ce paramètre est passé : | |
1= taux de compression maximum | |||
2 = vitesse de compression maximum |
Description
COMPRESSER BLOB compresse le BLOB blob à l'aide de l'algorithme de compression interne de 4e Dimension.
Le paramètre optionnel compression vous permet de fixer la façon dont le BLOB sera compressé :
Si vous passez 1, le BLOB est compressé de manière aussi compacte que possible, au détriment de la vitesse à laquelle la compression et la décompression sont effectuées.
Si vous passez 2, le BLOB est compressé de manière aussi rapide que possible (et sera décompressé aussi vite que possible) 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 ce paramètre, le BLOB est compressé de manière aussi compacte que possible (méthode de compression 1).
4e Dimension fournit les constantes suivantes:
Constante | Type | Valeur |
Méthode de compression compacte | Entier long | 1 |
Méthode de compression rapide | Entier long | 2 |
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.
Exemples
(1) 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.
(2) 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
Référence
DECOMPRESSER BLOB, LIRE PROPRIETES BLOB.
Variables et ensembles système
La variable OK prend la valeur 1 si le BLOB a été correctement compressé, sinon elle prend la valeur 0.