/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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.