int main(int argc, char** argv) { int i=0; int tailleO=0; int *ptrT=&tailleO; char **tabCodes; if (argc<2){ printf("erreur"); /*aide();*/ return 0; } tabCodes=getCodes(argv[1],ptrT); printf("taille originale du fichier a décomprésser:%d\n",tailleO); for (i=0;i<256;i++){ if(tabCodes[i]!=NULL) printf("%d:%s\n",i,tabCodes[i]); } decompresser(argv[1],tabCodes, ptrT); for(i=0;i<256;i++) { free(tabCodes[i]); } free(tabCodes); return 0; }
int main (int argc, char * argv[]) { t_ptr_arbre dictionnaire = NULL; unsigned int choix = 1; char fichier_entree[256], fichier_sortie[256]; double temps_debut = 0.0, temps_fin = 0.0; printf ("\n\n"); printf (" ---------- Compression et Decompression LZW ---------------\n\n"); if (argc == 2 && strcmp ("h", argv[1]) == 0) { printf ("\n\n"); printf (" lzw <c|d|h> <fichier_d_entree> <fichier_de_sortie>\n"); printf (" \tc : compression\n"); printf (" \td : decompression\n"); printf (" \th : affichage de l'aide\n"); printf (" \tfichier_d_entree : nom du fichier d'entree\n"); printf (" \tfichier_de_sortie : nom du fichier de sortie\n"); printf ("\n\n"); return EXIT_SUCCESS; } else if (argc == 4) { if (strcmp ("c", argv[1]) == 0) { printf ("COMPRESSION\n"); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); ouvrir_fichier_entree (argv[2], 0); ouvrir_fichier_sortie (argv[3], 1); compresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (1, temps_debut, temps_fin); fermer_fichiers (); detruire_dictionnaire (dictionnaire); } else if (strcmp ("d", argv[1]) == 0) { printf ("DECOMPRESSION\n"); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); ouvrir_fichier_entree (argv[2], 1); ouvrir_fichier_sortie (argv[3], 0); decompresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (0, temps_debut, temps_fin); fermer_fichiers (); detruire_dictionnaire (dictionnaire); } printf ("\n\n"); return EXIT_SUCCESS; } /* Menu si aucun argument n'a ete donne en ligne de commande */ while (choix != 0) { printf ("\n\n"); printf (" \t1 - Compresser un fichier (fichier texte)\n"); printf (" \t2 - Decompresser un fichier (fichier binaire)\n"); printf (" \t3 - Affichage du dernier dictionnaire utilise\n"); printf (" \t0 - Quitter le programme\n"); printf (" Votre choix : "); scanf ("%d", &choix); fgets (fichier_entree, 256, stdin); /* Recupere le caractere \n lu apres le choix */ printf ("\n"); switch (choix) { case 1 : printf ("COMPRESSION\n"); if (dictionnaire != NULL) detruire_dictionnaire (dictionnaire); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); demander_nom_fichiers (fichier_entree, fichier_sortie); ouvrir_fichier_entree (fichier_entree, 0); ouvrir_fichier_sortie (fichier_sortie, 1); compresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (1, temps_debut, temps_fin); fermer_fichiers (); break; case 2 : printf ("DECOMPRESSION\n"); if (dictionnaire != NULL) detruire_dictionnaire (dictionnaire); temps_debut = (double)clock (); dictionnaire = initialiser_dictionnaire (); demander_nom_fichiers (fichier_entree, fichier_sortie); ouvrir_fichier_entree (fichier_entree, 1); ouvrir_fichier_sortie (fichier_sortie, 0); decompresser (dictionnaire); temps_fin = (double)clock (); afficher_statistiques (0, temps_debut, temps_fin); fermer_fichiers (); break; case 3 : printf ("AFFICHAGE DU DICTIONNAIRE\n"); if (dictionnaire != NULL) afficher_dictionnaire (dictionnaire, 0); break; default : choix = 0; break; } } printf ("\n"); return EXIT_SUCCESS; }