| retrouver la taille d'un fichier dans l'IFS |
Il est très simple de retrouver la taille d'un objet as400 mais pour un fichier de L'IFS voici une solution à base d'api PGM PARM(&PATH &SIZEDEC) DCL VAR(&PATH) TYPE(*CHAR) LEN(128)
DCL VAR(&SIZEDEC) TYPE(*DEC) LEN(15 0)
DCL VAR(&HANDLE) TYPE(*CHAR) LEN(16)
DCL VAR(&SIZEBIN) TYPE(*CHAR) LEN(4)
DCL VAR(&PATHLEN) TYPE(*CHAR) LEN(4)
DCL VAR(&ATTRTAB) TYPE(*CHAR) LEN(10)
DCL VAR(&ATTRLEN) TYPE(*CHAR) LEN(4)
CHGVAR VAR(%BIN(&PATHLEN)) VALUE(128)
CHGVAR VAR(%BIN(&ATTRLEN)) VALUE(10)
CALL PGM(QHFOPNSF) PARM(&HANDLE &PATH &PATHLEN +
'100 100 ' &ATTRTAB &ATTRLEN ' ' +
X'00000000') /* ouverture du fichier */
CALL PGM(QHFGETSZ) PARM(&HANDLE &SIZEBIN +
X'00000000') /* Récupération de la taille */
CALL PGM(QHFCLOSF) PARM(&HANDLE X'00000000') /* +
Fermeture du fichier */
/* conversion du résultat vers la variables de retours */
CHGVAR VAR(&SIZEDEC) VALUE(%BIN(&SIZEBIN))ENDPGM exemple d'utilisation dans un programme: call votrepgm parm('/tmp/votrefic.txt' &var150) |