Compression

Ce programme présente la compression et la décompression de flux. Dans cet exemple, il s'agit de fichiers.

Le fichier source est ${UPS_HOME}/upsvtm/demo/${UPS_LANGUAGE}/compresser.upl.

Mode compilé

Commande de compilation

upscmp Source=compresser.upl

Commande d'exécution

compresser

Mode interprété

upssng Source=compresser.upl

Fichier source

Source Composant "Exemple de l'emploi de la compression" Version 4.0.0;

Principal
/*******/
Variable
/******/
Debut
F1=Fichier("/tmp/essai.doc", LectureBinaire);
F2=Fichier("/tmp/essai1.bin", EcritureBinaire);
FC2=FluxCompresse(IFlux(F2));
FC2.ChangerModeCompressionDeflate(4096);
F2=Nul;
TantQue Vrai Faire Fin TantQue
F1.Fermer();
F1=Nul;
FC2.Fermer();
FC2=Nul;

F1=Fichier("/tmp/essai1.bin", LectureBinaire);
F2=Fichier("/tmp/essai1.doc", EcritureBinaire);
FC1=FluxCompresse(IFlux(F1));
FC1.ChangerModeCompressionDeflate(4096);
F1=Nul;
TantQue Vrai Faire Fin TantQue
FC1.Fermer();
FC1=Nul;
F2.Fermer();
F2=Nul;

F1=Fichier("/tmp/essai.txt", LectureTexte);
F2=Fichier("/tmp/essai2.bin", EcritureBinaire);
FC2=FluxCompresse(IFlux(F2));
FC2.ChangerModeCompressionRle();
F2=Nul;
TantQue Vrai Faire Fin TantQue
F1.Fermer();
F1=Nul;
FC2.Fermer();
FC2=Nul;

F1=Fichier("/tmp/essai2.bin", LectureBinaire);
F2=Fichier("/tmp/essai2.txt", EcritureTexte);
FC1=FluxCompresse(IFlux(F1));
FC1.ChangerModeCompressionRle();
F1=Nul;
TantQue Vrai Faire Fin TantQue
FC1.Fermer();
FC1=Nul;
F2.Fermer();
F2=Nul;

F1=Fichier("/tmp/essai.doc", LectureBinaire);
F2=Fichier("/tmp/essai3.bin", EcritureBinaire);
FC2=FluxCompresse(IFlux(F2));
FC2.ChangerModeCompressionLzw(9,12);
F2=Nul;
TantQue Vrai Faire Fin TantQue
F1.Fermer();
F1=Nul;
FC2.Fermer();
FC2=Nul;

F1=Fichier("/tmp/essai3.bin", LectureBinaire);
F2=Fichier("/tmp/essai3.doc", EcritureBinaire);
FC1=FluxCompresse(IFlux(F1));
FC1.ChangerModeCompressionLzw(9,12);
F1=Nul;
TantQue Vrai Faire Fin TantQue
FC1.Fermer();
FC1=Nul;
F2.Fermer();
F2=Nul;

CopierFichier("/tmp/essai.doc", "/tmp/essai4.doc");
?=CompresserFichier("/tmp/essai4.doc", "/tmp/essai4.doc.gz", FormatCompressionGZip);
?=DecompresserFichier("/tmp/essai4.doc.gz", "/tmp/essai4.doc", FormatCompressionGZip);

CopierFichier("/tmp/essai.doc", "/tmp/essai5.doc");
?=CompresserFichier("/tmp/essai5.doc", "/tmp/essai5.doc.z", FormatCompressionZLib);
?=DecompresserFichier("/tmp/essai5.doc.z", "/tmp/essai5.doc", FormatCompressionZLib);
Fin Principal