Le fichier source est ${UPS_HOME}/upsvtm/demo/${UPS_LANGUAGE}/compresser.upl.
upscmp Source=compresser.upl
compresser
upssng Source=compresser.upl
Source Composant "Exemple de l'emploi de la compression" Version 4.0.0;
Principal
/*******/
Variable
/******/
F1 : Nul Ou Fichier;
F2 : Nul Ou Fichier;
FC1 : Nul Ou FluxCompresse;
FC2 : Nul Ou FluxCompresse;
Ligne : Caractere;
B : Binaire;
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
?=F1.Lire(B,512);
FC2.Ecrire(B);
Si F1.FinDeFlux Alors
Arreter;
Fin Si
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
?=FC1.Lire(B,512);
F2.Ecrire(B);
Si FC1.FinDeFlux Alors
Arreter;
Fin Si
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
?=F1.LireUneLigne(Ligne);
FC2.Ecrire(Ligne+"\n");
Si F1.FinDeFlux Alors
Arreter;
Fin Si
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
?=FC1.LireUneLigne(Ligne);
F2.Ecrire(Ligne+"\n");
Si FC1.FinDeFlux Alors
Arreter;
Fin Si
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
?=F1.Lire(B,512);
FC2.Ecrire(B);
Si F1.FinDeFlux Alors
Arreter;
Fin Si
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
?=FC1.Lire(B,512);
F2.Ecrire(B);
Si FC1.FinDeFlux Alors
Arreter;
Fin Si
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