/*************************************************************************************************************************************/ /* */ /* C O M P R E S S I O N O P T I M A L E : */ /* */ /* */ /* Nota : */ /* */ /* Ce programme est equivalent a 'v $xrC/CompressionOptimale.01$vv$Z' */ /* au niveau fonctionnel (a condition de faire '$EditerSeulement=$NEXIST'). */ /* */ /* La difference importante vient du fait que le '$Z' ne peut etre soumis */ /* aux mesures de '$MPerfor1' et de '$MPerfor2', cela etant du au fait */ /* qu'etant interprete par '$CSH', le nombre de process mis en oeuvre se */ /* chiffre en centaines, voire en milliers... */ /* */ /* */ /* Author of '$xrC/CompressionOptimale.01$vv$c' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20130714174635). */ /* */ /*************************************************************************************************************************************/ #include "CompressionDeCompressionOptimale.01.vv.I" main(int argc,char *argv[]) { if (argc != 2) { printf("Il faut un argument et un seul.\n"); } else { if (LongueurFichier(NOM_DU_FICHIER,VRAI) > 0) { int TailleFichierCompresseLePlusCourt=INFINI; #ifdef Genere_CDC_00 /* Introduit le 20151123104112 pour plus de generalite... */ COMPRESSION(Compresseur___00,PostFixe_CDC__00); #else #endif #ifdef Genere_CDC_01 COMPRESSION(Compresseur___01,PostFixe_CDC__01); #else #endif #ifdef Genere_CDC_02 COMPRESSION(Compresseur___02,PostFixe_CDC__02); #else #endif #ifdef Genere_CDC_03 COMPRESSION(Compresseur___03,PostFixe_CDC__03); #else #endif #ifdef Genere_CDC_04 COMPRESSION(Compresseur___04,PostFixe_CDC__04); #else #endif #ifdef Genere_CDC_05 COMPRESSION(Compresseur___05,PostFixe_CDC__05); #else #endif #ifdef Genere_CDC_06 COMPRESSION(Compresseur___06,PostFixe_CDC__06); #else #endif #ifdef Genere_CDC_07 COMPRESSION(Compresseur___07,PostFixe_CDC__07); #else #endif #ifdef Genere_CDC_08 COMPRESSION(Compresseur___08,PostFixe_CDC__08); #else #endif #ifdef Genere_CDC_09 COMPRESSION(Compresseur___09,PostFixe_CDC__09); #else #endif #ifdef Genere_CDC_0A COMPRESSION(Compresseur___0A,PostFixe_CDC__0A); #else #endif #ifdef Genere_CDC_0B COMPRESSION(Compresseur___0B,PostFixe_CDC__0B); #else #endif #ifdef Genere_CDC_0C COMPRESSION(Compresseur___0C,PostFixe_CDC__0C); #else #endif #ifdef Genere_CDC_0D COMPRESSION(Compresseur___0D,PostFixe_CDC__0D); #else #endif #ifdef Genere_CDC_0E COMPRESSION(Compresseur___0E,PostFixe_CDC__0E); #else #endif #ifdef Genere_CDC_0F COMPRESSION(Compresseur___0F,PostFixe_CDC__0F); #else #endif #ifdef Genere_CDC_0G COMPRESSION(Compresseur___0G,PostFixe_CDC__0G); #else #endif #ifdef Genere_CDC_0H COMPRESSION(Compresseur___0H,PostFixe_CDC__0H); #else #endif #ifdef Genere_CDC_0I COMPRESSION(Compresseur___0I,PostFixe_CDC__0I); #else #endif #ifdef Genere_CDC_0J COMPRESSION(Compresseur___0J,PostFixe_CDC__0J); #else #endif /* Le principe est simple : dans un premier temps, tous les compresseurs sont utilises et */ /* la longueur des fichiers compresses est mesuree. */ /* */ /* Le 20140414134610 ont ete introduits les 'Genere_CDC_1n' (avec n E [0,9]). */ #ifdef Genere_CDC_00 /* Introduit le 20151123104112 pour plus de generalite... */ NETTOYAGE(PostFixe_CDC__00); #else #endif #ifdef Genere_CDC_01 NETTOYAGE(PostFixe_CDC__01); #else #endif #ifdef Genere_CDC_02 NETTOYAGE(PostFixe_CDC__02); #else #endif #ifdef Genere_CDC_03 NETTOYAGE(PostFixe_CDC__03); #else #endif #ifdef Genere_CDC_04 NETTOYAGE(PostFixe_CDC__04); #else #endif #ifdef Genere_CDC_05 NETTOYAGE(PostFixe_CDC__05); #else #endif #ifdef Genere_CDC_06 NETTOYAGE(PostFixe_CDC__06); #else #endif #ifdef Genere_CDC_07 NETTOYAGE(PostFixe_CDC__07); #else #endif #ifdef Genere_CDC_08 NETTOYAGE(PostFixe_CDC__08); #else #endif #ifdef Genere_CDC_09 NETTOYAGE(PostFixe_CDC__09); #else #endif #ifdef Genere_CDC_0A NETTOYAGE(PostFixe_CDC__0A); #else #endif #ifdef Genere_CDC_0B NETTOYAGE(PostFixe_CDC__0B); #else #endif #ifdef Genere_CDC_0C NETTOYAGE(PostFixe_CDC__0C); #else #endif #ifdef Genere_CDC_0D NETTOYAGE(PostFixe_CDC__0D); #else #endif #ifdef Genere_CDC_0E NETTOYAGE(PostFixe_CDC__0E); #else #endif #ifdef Genere_CDC_0F NETTOYAGE(PostFixe_CDC__0F); #else #endif #ifdef Genere_CDC_0G NETTOYAGE(PostFixe_CDC__0G); #else #endif #ifdef Genere_CDC_0H NETTOYAGE(PostFixe_CDC__0H); #else #endif #ifdef Genere_CDC_0I NETTOYAGE(PostFixe_CDC__0I); #else #endif #ifdef Genere_CDC_0J NETTOYAGE(PostFixe_CDC__0J); #else #endif /* Dans un second temps, seul le fichier compresse le plus court est conserve. Son postfixe */ /* memorise alors le compresseur qui l'a engendre. Les autres fichiers sont detruits. */ /* */ /* On rappelle le 20140126090350 que si plusieurs fichiers compresses ont la meme taille, */ /* ils sont evidemment tous conserves ; comment faire autrement ? */ /* */ /* Le 20140414134610 ont ete introduits les 'Genere_CDC_1n' (avec n E [0,9]). */ EXECUTION_COMMANDE(CONCATENE_CHAINE_03(DELETE,ESPACE,NOM_DU_FICHIER)); /* Enfin, le fichier a compresser est detruit afin que le comportenement de ce '$X' soit */ /* compatible avec les compresseurs "standards"... */ } else { } } return(OK); }