Пример #1
0
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;
}
Пример #2
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;
}