[vc++] compression de huffman+tutoriel

Soyez le premier à donner votre avis sur cette source.

Vue 15 524 fois - Téléchargée 3 275 fois

Description

Compression de Huffman en mode console. 30 pages de tutoriel très très détaillé.
Certes il existe déjà 2 programmes similaires sur ce site mais le premier est mono fichier donc illisible et le deuxième est en prog Windows donc plus complexe à comprendre.
Le zip comprend le projet Visual C++ (Il faut par contre construire l'exécutable) ainsi que le tutoriel au format Word 2000.
Le prog fait environ 450 lignes.

Source / Exemple :


Voir le Zip

Conclusion :


Toute remarque est la bienvenue.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2 -
il manque des liberations memoires (des arbres surtout, et d'un buffer)
sinon un chose me chagrine :
fwrite(&nbdifferents,SIZE_UC,1,desti);//nombre de caratères différents (1 octet)

le probleme c'est que si le nombre de difference est 256, comme c'est code sur un unsigned char, ca enregistre sur un octet 0x00, donc il faut deux solutions : soit tu le codes sur 2 octets, soit tu enregistres (nbdifferents-1) au lieu de nbdifferents
kokoook
Messages postés
2
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
15 mai 2005
-
en fait je suis pas un expert en c++ svp comment contre construire l'exécutable ?
merci
kokoook
Messages postés
2
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
15 mai 2005
-
bonjour en fait je compile ton code et sa marche mais pour l'executer sa me donne ca :

Linking...
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl effacerListe(struct element *)" (?effacerListe@@YAXPAUelement@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl coderA(struct noeud *,struct caractere *,int,int)" (?coderA@@YAXPAUnoeud@@PAUcaractere@@HH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct element * __cdecl delister(struct element *,struct noeud *)" (?delister@@YAPAUelement@@PAU1@PAUnoeud@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct noeud * __cdecl fusionner(struct noeud *,struct noeud *,unsigned char,int)" (?fusionner@@YAPAUnoeud@@PAU1@0EH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "int __cdecl nombreElementsListe(struct element *)" (?nombreElementsListe@@YAHPAUelement@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct element * __cdecl enlister(struct element *,struct noeud *)" (?enlister@@YAPAUelement@@PAU1@PAUnoeud@@@Z)
Huffman.obj : error LNK2001: unresolved external symbol "struct noeud * __cdecl nouvelArbre(unsigned char,int,int)" (?nouvelArbre@@YAPAUnoeud@@EHH@Z)
Huffman.obj : error LNK2001: unresolved external symbol "enum Booleen __cdecl chercher(unsigned int,unsigned int,struct noeud *,unsigned char *)" (?chercher@@YA?AW4Booleen@@IIPAUnoeud@@PAE@Z)
Huffman.obj : error LNK2001: unresolved external symbol "void __cdecl reconstruireArbre(struct noeud * *,unsigned int,unsigned int,unsigned char)" (?reconstruireArbre@@YAXPAPAUnoeud@@IIE@Z)
Debug/Huffman.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

Huffman.exe - 10 error(s), 0 warning(s)

je sais pas quoi faire aidez moi svp !!!!!!!
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
29 -
eh les gars, faut pas abuser, quand on a pas word, et que l'on ne veut pas payer une licence a microsoft, on télécharge open ofice.org, c'est gratuit!
Huffman, c'est assez performant, bien joué!!!
Il y avait un login qui l'expliquais, j'avais compris comment il marchait, mais jamais réussi a créer mon prog (et j'ai eu la fleme de m'y metre plus de trois heures...)
Bien joué, même si ça sert a rien car on a bzip2 qui l'inclut...
victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3 -
Pour bobbyf > Tu copies huffman.exe dans C:
Tu lance l'invite MS-DOS et tu tape pour compresser :
C:\huffman -c source.ext destination.ext
Pour décompresser :
C:\huffman -d source.ext destination

exemple tu as essai.txt sur C:

Tu tape pour le compresser : C:\huffman -c C:\essai.txt C:\essai.txt.compres
Pour le décompresser :
C:\huffman -d C:\essai.txt.compres C:
cela devrait marcher

Le créateur du site www.jscv.com

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.