COMPRESSION / DECOMPRESSION SELON L'ALGORITHME LEMPELZIV 78V

bothan Messages postés 12 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 3 mai 2010 - 3 mai 2010 à 13:41
th1man Messages postés 3 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 mai 2010 - 5 mai 2010 à 20:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51716-compression-decompression-selon-l-algorithme-lempelziv-78v

th1man Messages postés 3 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 mai 2010
5 mai 2010 à 20:01
Salut,
Merci à toi BOTHAN pour me l'avoir fait découvrir;
Effectivement, la fonction lectBitFich ne se trouvait pas dans le zip (le ZIP n'était pas le bon).
Je m'en excuse !!!!!!!!!!!!
bothan Messages postés 12 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 3 mai 2010
4 mai 2010 à 00:28
le c!='\n' est de trop bien sur
bothan Messages postés 12 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 3 mai 2010
3 mai 2010 à 23:05
Bonsoir

Peut être le fichier ChaineBit.h et ChaineBit.c sur le serveur ne sont pas identiques aux tiens mais je n'ai pas la methode en question:

pour le header pas de lectBit Fich(fichSrc,nbre,&ind,&car):

#ifndef _CHAINEBIT_H_
#define _CHAINEBIT_H_

void bitChar(char,int[]); // char -> boolean[8]
char charBit(int[]); // boolean[8] -> char
void ecrireFich(FILE*,int,int,char); // l'ecriture dans le fichier l'indice, la taille de l'indice en binaire
// \__ainsi que la chaine;
void ecrtBitFich(FILE*,int); // l'ecriture dans un fichier bit par bit
// \__le passage par ce module est obligatoire

#endif

et dans la source ChaineBit.c non plus

Pour une lecture complete caractere par caractere d'un fichier texte je peux proposer ceci:

#include<stdio.h>
#include<stdlib.h>

int main()
{
FILE *F;
int c;
if(NULL==(F=fopen("file.txt","r")))
return EXIT_FAILURE;
while((c=fgetc(F))!=EOF && c!='\n')
printf("%c\n",c);
return EXIT_SUCCESS;
}

mais ne vaudrait il mieux pas travailler en binaire sur les fichiers?

A+
th1man Messages postés 3 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 mai 2010
3 mai 2010 à 21:24
mdr.............
En tapant cette phrase "Je veut dire le parcourir en entier", je voulait dire parcourir le fichier word caractere par caractere jusqu'à sa fin. ^^
th1man Messages postés 3 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 mai 2010
3 mai 2010 à 21:22
Salut à vous BOTHAN,

La fonction "lectBitFich(fichSrc,nbre,&ind,&car)" tu la trouve déclarer dans le fichier "ChaineBit.h" et définie dans "ChaineBit.c"............

MOI, ce que je constate, aprés plusieus tests, que la fonction lectBitFich bloque dés qu'elle lit un indice codé sur 8 bits ( c'est à dire juste à partir de l'ajout de l'élément 128 de la liste), et que la valeur de celui çi est égual à 0 ( codé sur 8 bits -> "00000000" )

J'ai une question, comment lire un fichier word en C ? Je veut dire le parcourir en entier.

______________Merci
bothan Messages postés 12 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 3 mai 2010
3 mai 2010 à 13:41
Bonjour th1man

J'aimerai bien tester la decompression si c'est possible

Mais comment tester ta methode lectBitFich(fichSrc,nbre,&ind,&car) appelée dans decompression et savoir pourquoi elle pose probleme?

car je ne la trouve pas dans les fichiers sources de ton projet.

Salutations
Rejoignez-nous