API QzipUnzip : dézip un fichier

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)
 
     Dunzipopt         DS                  qualified
      * affichage de messages              *VERBOSE ou *NONE
     D verbose                       10    inz('*NONE')
      * remplacer si existant ?            *ALL ou *NONE
     D replace                        6    inz('*YES')
 
     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 QZIPUNZIP       PR                  EXTPROC('QzipUnzip')
     D  chemin_inp                         likeds(path_fmt)
     D  chemin_outp                        likeds(path_fmt)
     D  format                        8    const
     D  optionp                            likeds(unzipopt)
     D  error                              likeds(errcodeds)
 


|
      * paramètres en entrée
     DQUNZIP           PI                  EXTPGM('QUNZIP')
      * les chemins sont à 32c pour faciliter le CALL depuis une ligne
      * de commandes, il peuvent être étendus jusqu'à 1024
     D fichierzip                    32
     D repertoire                    32
      /free
        chemin_in.path_name = fichierzip;
        chemin_in.path_len = %len(%trimr(fichierzip));
        chemin_out.path_name = repertoire;
        chemin_out.path_len = %len(%trimr(repertoire));
 
        QZipunzip(chemin_in : chemin_out : 'UNZIP100' : unzipopt : errcodeds);
 
        *inLR = *on;
       /end-free




©AF400