
|
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
|