/*************************************************************************************************************************************/
/* */
/* 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);
}
Copyright © Jean-François Colonna, 2013-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2013-2021.