victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 2023
-
24 août 2004 à 21:07
bileltechno
Messages postés3Date d'inscriptionvendredi 28 juin 2013StatutMembreDernière intervention 4 mars 2015
-
4 mars 2015 à 12:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
bileltechno
Messages postés3Date d'inscriptionvendredi 28 juin 2013StatutMembreDernière intervention 4 mars 2015 4 mars 2015 à 12:23
Bonjour, j'ai toujours cet erreur :
" 1>Stat_test.obj : error LNK2019: symbole externe non résolu _BZ2_bzWrite@16 référencé dans la fonction "public: int __thiscall CStat_test::compress_to_file(char *,char *,int)" (?compress_to_file@CStat_test@@QAEHPAD0H@Z) "
---------------------------
pouvez vous m'aidez? et merci d'avance :)
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 10 mars 2008 à 19:14
Il faut que tu créé un format d'assemblage de fichier et qu'au lieu de l'écrire avec la fonction write que tu utilise celle du BZ2.
Ca revient à créer un assembleur de fichier avec juste la fonction de lecture et d'écriture qui diffère.
SuperMonkey
Messages postés3Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention10 mars 2008 10 mars 2008 à 17:05
Pas mal du tout !
Cependant j'ai une question :
Est il possible de compresser plusieurs fichiers en un
en améliorant ton code ?
rosemarie302
Messages postés3Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention15 novembre 2004 2 mai 2007 à 22:28
bonjour,
Alors voici les corrections a apporter pour que le code soit correcte :
il faut remplacer tous les "int in, out;" par "unsigned int in, out;" .
et changer les options d'ouverture de fichier "r" et "w" en mode binaire par "rb" et "wb" dans toutes les fonctions.
Dans la fonction compress_to_file, remplacer "if(bzerr=BZ_IO_ERROR)" par " if(bzerr==BZ_IO_ERROR)" .
et voilla le code est parfait, je rapel que pour l'utiliser sous DEV-C++ il suffi d'installer le DEV-PACK "bzip2" et de linker l'option -lbz2 dans le projet et de trouver sur son ordi la DLL "bzip2.dll" pour accompagner le programme, voillou !!
Pour une utilisation en annex il faut cree le fichier "bzcompress.h" a inclure dans votre programme main.
/* bzcompress.h par 302 ~ joie ludovic ~ 2007 */
int compress_file_to_file(char *fin, char *fout);
int compress_to_file(char *file, char *data, int len);
void * uncompress_from_file(char *filename, int block_size, int *size);
int uncompress_from_file_to_file(char *fin, char *fout, int block_size);
/* */
et pour les rapides voici une fonction test :
#include "bzcompress.h"
et
char source[512];
char compresser[512];
char decompresser[512];
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 17 avril 2007 à 00:40
Comment on récupère la taille du fichier non compressé dans une archive compressée ?
cs_rwick
Messages postés1Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention27 octobre 2006 27 oct. 2006 à 17:35
Pour ceux qui comme moi on des problèmes de vue sur ce source,
je veux signaler qu'il y a petit problème dans la fonction compress_to_file.
Il ne faut pas lire :
if(bzerr=BZ_IO_ERROR)
{
BZ2_bzWriteClose(&bzerr,bh,1,&in,&out);
fclose(fd);
return -1;
}
mais
if(bzerr==BZ_IO_ERROR)
{
BZ2_bzWriteClose(&bzerr,bh,1,&in,&out);
fclose(fd);
return -1;
}
cs_rascas
Messages postés3Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention 9 mai 2006 9 mai 2006 à 10:51
non je veux dire sur kdevelop desolé pas kwrite (la honte)
cs_rascas
Messages postés3Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention 9 mai 2006 9 mai 2006 à 10:49
je croi qu elle est deja instaler car quand je compile le source seul avec un editeur de texte ca marche bien, mais toujour sur kwrite ca marche pas!!
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 4 mai 2006 à 17:33
Il faut télécharger et installer la librairie bz2 !
cs_rascas
Messages postés3Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention 9 mai 2006 4 mai 2006 à 17:29
j ai essayé d utiliser le code avec kdevelop mais ca donne des erreur de type
/home/tannicha/appessai/src/appessai.cpp:334: undefined reference to `BZ2_bzWriteOpen'
/home/tannicha/appessai/src/appessai.cpp:340: undefined reference to `BZ2_bzWriteClose'
que dois je faire??merci
progrima
Messages postés125Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention 4 janvier 2006 11 oct. 2005 à 02:33
j'ai pris tes deux fonctions de compressions file to file et décompression file to file, et je les ai intégré dans mon prog.
Le prob c'est que la fonction de compression me donne tjrs une taille supperieur pour le fichier compressé.
stp, est ce que tu peux m'aider?
progrima
Messages postés125Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention 4 janvier 2006 10 oct. 2005 à 23:05
j'ai essayé de compiler ca avec visual C++ 6.0, mais j'ai eu l'erreur : Cannot open include file: 'bzlib.h': No such file or directory.
que dois je faire??
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 25 août 2004 à 17:28
oui...et meme .bz2 pour etre precis!!
en general il est associe a tar, qui permetr de faire une archive (la bzlib ne fait que compresser), ce qui donne des archives .tar.bz2 qui tendent a remplacer les archives .tar.gz ;-)
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 25 août 2004 à 17:26
Il me semble que ce format est .bz.
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 25 août 2004 à 15:01
Et oui c est bien les logiciels libres!
Ce format est en effet tres performant, et il tend a remplacer le format .gz sous Unix (.gz --> Zlib).
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 24 août 2004 à 22:18
Plus inprésionant un fichier de vide créé par Windows de taille 100Mo en 23 secondes devient du 113octets et en 6 Sec le 113octes redevient du 100Mo !!!!
Allucinant non ?
Si vous me croyez pas je vous envoi la preuve (en .bz evidement!!)
Et d'après mes test sur tout les compressions celle là est un bon compromis entre vitesse et compression (je ne dirait pas que la compression est sans aucune perte).
Même les format .rar et .zip compresse moins bien (testé seulement avec une bitmap)
Voilà c'était mon petit rapport
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 24 août 2004 à 21:07
Nickel et pour Windows sous Dev-C++ ça fonctionne en modifiant 2~3 p'tit choses !!
Un exemple de compression sur une image bitmap de 2.25 Mo j'obtient 327ko pas mal non ?
4 mars 2015 à 12:23
" 1>Stat_test.obj : error LNK2019: symbole externe non résolu _BZ2_bzWrite@16 référencé dans la fonction "public: int __thiscall CStat_test::compress_to_file(char *,char *,int)" (?compress_to_file@CStat_test@@QAEHPAD0H@Z) "
---------------------------
pouvez vous m'aidez? et merci d'avance :)
10 mars 2008 à 19:14
Ca revient à créer un assembleur de fichier avec juste la fonction de lecture et d'écriture qui diffère.
10 mars 2008 à 17:05
Cependant j'ai une question :
Est il possible de compresser plusieurs fichiers en un
en améliorant ton code ?
2 mai 2007 à 22:28
Alors voici les corrections a apporter pour que le code soit correcte :
il faut remplacer tous les "int in, out;" par "unsigned int in, out;" .
et changer les options d'ouverture de fichier "r" et "w" en mode binaire par "rb" et "wb" dans toutes les fonctions.
Dans la fonction compress_to_file, remplacer "if(bzerr=BZ_IO_ERROR)" par " if(bzerr==BZ_IO_ERROR)" .
et voilla le code est parfait, je rapel que pour l'utiliser sous DEV-C++ il suffi d'installer le DEV-PACK "bzip2" et de linker l'option -lbz2 dans le projet et de trouver sur son ordi la DLL "bzip2.dll" pour accompagner le programme, voillou !!
Pour une utilisation en annex il faut cree le fichier "bzcompress.h" a inclure dans votre programme main.
/* bzcompress.h par 302 ~ joie ludovic ~ 2007 */
int compress_file_to_file(char *fin, char *fout);
int compress_to_file(char *file, char *data, int len);
void * uncompress_from_file(char *filename, int block_size, int *size);
int uncompress_from_file_to_file(char *fin, char *fout, int block_size);
/* */
et pour les rapides voici une fonction test :
#include "bzcompress.h"
et
char source[512];
char compresser[512];
char decompresser[512];
sprintf(source,"image.bmp");
sprintf(compresser,"image compresser.bmp.bz");
sprintf(decompresser,"image decompresser.bmp");
compress_file_to_file(source,compresser);
uncompress_from_file_to_file(compresser,decompresser,0);
/**/
Oki j'espere faciliter la tache a pas mal de monde.
Bonne compression a tous.
/* 302 ~ joie ludovic ~ 2007 */
/* slyders302@hotmail.com */
17 avril 2007 à 00:40
27 oct. 2006 à 17:35
je veux signaler qu'il y a petit problème dans la fonction compress_to_file.
Il ne faut pas lire :
if(bzerr=BZ_IO_ERROR)
{
BZ2_bzWriteClose(&bzerr,bh,1,&in,&out);
fclose(fd);
return -1;
}
mais
if(bzerr==BZ_IO_ERROR)
{
BZ2_bzWriteClose(&bzerr,bh,1,&in,&out);
fclose(fd);
return -1;
}
9 mai 2006 à 10:51
9 mai 2006 à 10:49
4 mai 2006 à 17:33
4 mai 2006 à 17:29
/home/tannicha/appessai/src/appessai.cpp:334: undefined reference to `BZ2_bzWriteOpen'
/home/tannicha/appessai/src/appessai.cpp:340: undefined reference to `BZ2_bzWriteClose'
que dois je faire??merci
11 oct. 2005 à 02:33
Le prob c'est que la fonction de compression me donne tjrs une taille supperieur pour le fichier compressé.
stp, est ce que tu peux m'aider?
10 oct. 2005 à 23:05
que dois je faire??
25 août 2004 à 17:28
en general il est associe a tar, qui permetr de faire une archive (la bzlib ne fait que compresser), ce qui donne des archives .tar.bz2 qui tendent a remplacer les archives .tar.gz ;-)
25 août 2004 à 17:26
25 août 2004 à 15:01
Ce format est en effet tres performant, et il tend a remplacer le format .gz sous Unix (.gz --> Zlib).
24 août 2004 à 22:18
Allucinant non ?
Si vous me croyez pas je vous envoi la preuve (en .bz evidement!!)
Et d'après mes test sur tout les compressions celle là est un bon compromis entre vitesse et compression (je ne dirait pas que la compression est sans aucune perte).
Même les format .rar et .zip compresse moins bien (testé seulement avec une bitmap)
Voilà c'était mon petit rapport
24 août 2004 à 21:07
Un exemple de compression sur une image bitmap de 2.25 Mo j'obtient 327ko pas mal non ?
10/10 !!