Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1734 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Compression avec zlib (ou libz au choix)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compression avec zlib (ou libz au choix)

n°188106
Poulou
Posté le 01-08-2002 à 17:49:37  profilanswer
 

J'ai un fichier que je veux compresser avec la libz.
J'ai bien regarder la doc (http://www.gzip.org/zlib/manual.html) mais ça reste bien obscur !... N'y aurait-il pas quelque part un exemple de compression de fichier ?
Merci pour toute info

mood
Publicité
Posté le 01-08-2002 à 17:49:37  profilanswer
 

n°188122
Jar Jar
Intaigriste
Posté le 01-08-2002 à 17:55:00  profilanswer
 

Rien que sur ma machine, j'ai un millier de logiciels libres installés qui utilisent la zlib. Des exemples, ça devrait se trouver...


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°188148
chrisbk
-
Posté le 01-08-2002 à 18:20:17  profilanswer
 

heuh si normalement t'as l'exemple gzip
 
attends bouge pas

n°188151
chrisbk
-
Posté le 01-08-2002 à 18:23:24  profilanswer
 

Code :
  1. int zgCompress(IInputFlow *fileIn,IOutputFlow *fileOut,unsigned char cmpQuality)
  2. {
  3.     gzFile gzFileOut;
  4.     if (!fileIn || !fileOut)
  5.         return -1;
  6.     if (cmpQuality < 0 )
  7.         cmpQuality = 0;
  8.     if (cmpQuality>9)
  9.         cmpQuality=9;
  10.     char mode[5];
  11.     mode[0]='w';
  12.     mode[1]='b';
  13.     itoa(cmpQuality,mode+2,10);
  14.     gzFileOut = gzopen((IFlow *)fileOut, mode);
  15.     char * buf = new char [BUFLEN];
  16.     int len;
  17.    
  18.     while(1)
  19.     {
  20.         len = fileIn->read(buf,sizeof(buf));
  21.         if (len == 0)
  22.             break;
  23.        
  24.         if (gzwrite(gzFileOut, buf, (unsigned)len) != len)
  25.         {
  26.             delete []buf;
  27.             return -1;
  28.         }
  29.     }
  30.    
  31.     gzclose(gzFileOut);
  32.     delete []buf;
  33.     return 0;
  34. }


 
 
vala ca c'est le code que j'utilise pour compresser avec zlib
remplace les IxxFlow par des FILE et (normalement) c'est ok (enfin remplace les flow->read par des fread etc etc, hein ? )
 


Message édité par chrisbk le 01-08-2002 à 18:25:48
n°188328
Poulou
Posté le 01-08-2002 à 23:29:42  profilanswer
 

Ok donc si je comprends bien il "suffit de" :

gzopen
gzwrite
gzclose


 
Merci en tt cas pour le code, je testerai ça demain. Par contre j'ai pas compris ton "remplace les IxxFlow par des FILE et (normalement) c'est ok (enfin remplace les flow->read par des fread etc etc, hein ? )" mais bon je devrais arriver à me débrouiller ! ;)

n°188380
chrisbk
-
Posté le 02-08-2002 à 00:33:32  profilanswer
 

ben les IFlow *  trucbidule c'est un machin a moi (j'ai du modif la zlib pour qu'elle prenne ca a la place des FILE *, c'est un exercice que je ne recommande a personne :D)
 
donc quand tu vois I**Flow tu met FILE et quand tu vois flow->read(truc,20); tu transforme en fread(truc,20,10,flow);
 
simple quoi :O :D

n°188478
Poulou
Posté le 02-08-2002 à 08:26:07  profilanswer
 

ok
c'est ce que j'avais compris mais j'avoue que je comprenais pas le (IFlow *) en paramètre de gzopen ! Forcécemnt si on modifie les sources !... ;)
Par contre petite correction, 'gzopen' prend un 'const char *path' en paramètre. Si on veut un 'int fd' il faut utiliser 'gzdopen'. Voilà ct pour ceux que ça intéresse également
Merci bien en tt cas :)

n°937225
Le Veilleu​r
Posté le 04-01-2005 à 20:30:36  profilanswer
 

Désolé pour ce mega up, mais bon.
 
Je me demandais si je pouvais utiliser cette technique pour compresser un ensemble de fichier.
 
J'ai un vecteur d'ansistring qui contient les chemins d'accès à tout un ensemble de fichier. Et je voudrais faire un gros zip avec tous les fichiers dedans.
 
merci


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Compression avec zlib (ou libz au choix)

 

Sujets relatifs
CHoix des états suivant infos à l'impression ???Placer un fichier .exe dans son executable ! et la compression???
[questions choix technqiues] js/flash/java/....sockets ....choix bd: MyBase
[PHP] Compression des Pages[VB(A)] Utiliser un algorithme de compression dans son prog
[JS] Probleme de select à choix multiples[PHP] compression bzip2 et gzip
[C, c++, vb, ou autre] - algo de compression.. comment ca marche?[Pascal]Compression LZW
Plus de sujets relatifs à : Compression avec zlib (ou libz au choix)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR