/*************************************************************************************************************************************/ /* */ /* O U T I L S D E C O M P R E S S I O N / D E C O M P R E S S I O N D E C O N V E R S I O N : */ /* */ /* */ /* Author of '$xrC/CompressionDeCompressionConvert.01$vv$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20130920094043). */ /* */ /*************************************************************************************************************************************/ #include "CompressionDeCompression.01.vv.I" /* Introduit le 20131003093308... */ #define BCompresseur___0T \ Fgetenv("BCompresseur___0T") #define BDeCompresseur___0T \ Fgetenv("BDeCompresseur_0T") #define PostFixe_CDC__0T \ Fgetenv("PostFixe_CDC__0T") /* Definition du couple {compresseur,decompresseur} "Basique" T. Ces definitions ont ete */ /* introduites le 20140123171115 dans le but de definir des couples Temporaires et qui */ /* utilisent des Transformations... */ #define COMPRESSION_CONVERT(BCompresseur,PostFixe) \ main(int argc,char *argv[]) \ { \ if (argc != 2) \ { \ fprintf(stderr,"Il y a %d arguments, alors qu'il en faut un et un seul.\n",argc-1); \ } \ else \ { \ if (LongueurFichier(NOM_DU_FICHIER,VRAI) > 0) \ { \ int TailleFichierCompresseLePlusCourt=INFINI; \ /* Ne sert a rien, mais doit etre conserve a cause de 'COMPRESSION(...)'. */ \ \ EXECUTION_COMMANDE(CONCATENE_CHAINE_04(DELETE,ESPACE,NOM_DU_FICHIER,PostFixe)); \ EXECUTION_COMMANDE(CONCATENE_CHAINE_09(cat,ESPACE,NOM_DU_FICHIER,ESPACE \ ,PIPE \ ,BCompresseur \ ,REDIRECTION,NOM_DU_FICHIER,PostFixe \ ) \ ); \ /* Compression... */ \ \ 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); \ } \ /* Compression d'un fichier via 'BCompresseur'... */ #define DECOMPRESSION_CONVERT(BDeCompresseur,PostFixe) \ main(int argc,char *argv[]) \ { \ if (argc != 2) \ { \ fprintf(stderr,"Il y a %d arguments, alors qu'il en faut un et un seul.\n",argc-1); \ } \ else \ { \ char *NOM_DU_FICHIER_sans_postfixe=SuppressionPostFixes2(NOM_DU_FICHIER); \ \ if (LongueurFichier(NOM_DU_FICHIER_sans_postfixe,FAUX) == 0) \ { \ int NombreDeFichiersDecompresses=0; \ /* Ne sert a rien, mais doit etre conserve a cause de 'DECOMPRESSION(...)'. */ \ \ EXECUTION_COMMANDE(CONCATENE_CHAINE_03(DELETE,ESPACE,NOM_DU_FICHIER_sans_postfixe)); \ EXECUTION_COMMANDE(CONCATENE_CHAINE_09(cat,ESPACE \ ,NOM_DU_FICHIER_sans_postfixe,PostFixe,ESPACE \ ,PIPE \ ,BDeCompresseur \ ,REDIRECTION,NOM_DU_FICHIER_sans_postfixe \ ) \ ); \ /* DeCompression... */ \ \ EXECUTION_COMMANDE(CONCATENE_CHAINE_04(DELETE,ESPACE \ ,NOM_DU_FICHIER_sans_postfixe,PostFixe \ ) \ ); \ } \ else \ { \ fprintf(stderr,"Le fichier '%s' existe deja.\n",NOM_DU_FICHIER_sans_postfixe); \ } \ } \ \ return(OK); \ } \ /* DeCompression d'un fichier via 'BDeCompresseur'... */