API QzipZip : ZIP un fichier ou un répertoire

BoTTom |
     Dpath_fmt         DS                  TEMPLATE qualified
     D CCSID                         10I 0 inz
      * 0 = CCSID du JOB
     D pays                           2    inz(*ALLx'00')
      * x'0000' = pays du job
     D langage                        3    inz(*ALLx'00')
      * x'000000' = langue du job
     D reserve1                       3    inz(*ALLx'00')
     D typ_indicateur                10I 0 inz(0)
      * 0 => path_name content un chemin, le sérateur est sur 1
      * 1 => path_name contient un pointeur, le séparateur est sur 1
      * 2 => path_name content un chemin, le séparateur est sur 2
      * 3 => path_name contient un pointeur, le séparateur est sur 2
     D path_len                      10I 0
      * lg du chemin
     D path_delimiter                 2    inz('/')
      * si le séparateur est sur 1, c'est le premier caractère
     D reserve2                      10    inz(*ALLx'00')
     D path_name                   1024
 
     D chemin_in       DS                  likeds(path_fmt) inz(*LIKEDS)
     D chemin_out      DS                  likeds(path_fmt) inz(*LIKEDS)
 
     DZipoption        DS                  qualified
      * affichage de messages              *VERBOSE ou *NONE
     D verbose                       10    inz('*NONE')
      * traiter les sous répertoires       *ALL ou *NONE
     D subtree                        6    inz('*ALL')
      * commentaire
     D comment                      512
     D comment_lg                    10U 0
 
     DerrcodeDS        ds                  qualified
      * pour ne pas recevoir les erreurs : inz(%size(errcodeDS))
     d  tailleDS                     10i 0 inz(0)
     d  taille                       10i 0
     d  msgID                         7
     d  reserve                       1
     d  errdta                       50
 
     D QZIPZIP         PR                  EXTPROC('QzipZip')
     D  chemin_inp                         likeds(path_fmt)
     D  chemin_outp                        likeds(path_fmt)
     D  format                        8    const


|
     D  optionp                            likeds(zipoption)
     D  error                              likeds(errcodeds)
 
      * paramètres en entrée (il faut mettre ici le nom de votre *PGM)
     DQZIP             PI                  EXTPGM('QZIP')
      * les chemins sont à 32c pour faciliter le CALL depuis une ligne
      * de commandes, il peuvent être étendus jusqu'à 1024
     D chemin                        32
     D result                        32
      /free
        chemin_in.path_name = chemin;
        chemin_in.path_len = %len(%trimr(chemin));
        chemin_out.path_name = result;
        chemin_out.path_len = %len(%trimr(result));
        zipoption.comment = 'Zipé par 5770SS1 , V7';
        zipoption.comment_lg = %len(%trimr(zipoption.comment));
 
        Qzipzip(chemin_in : chemin_out : 'ZIP00100' : zipoption : errcodeds);
 
        *inLR = *on;
       /end-free




©AF400