PGM PARM(&VALID &PARAM)
DCL VAR(&VALID) TYPE(*CHAR) LEN(1)
DCL VAR(&PARAM) TYPE(*CHAR) LEN(512)
DCL VAR(&LGPATH) TYPE(*DEC) LEN(9 0)
DCL VAR(&UNICODE) TYPE(*CHAR) LEN(128)
DCL VAR(&PATH) TYPE(*CHAR) LEN(64)
 
/*********************************************************************/
/*QIBM_QPWSF_FIle_Serveur : serveur de fichier V3R10 */
/* */
/*Format PWFS0100 : - CHAR(10) Profil utilisateur */
/* - CHAR(10) fonction = '*FILESRV' */
/* - BIN(4) Action : 1 = modif des attributs */
/* 2 = création (STMF ou director*/
/* 3 = supression ( " " */
/* 4 = liste des attributs */
/* 5 = MOV */
/* 6 = OPEN */
/* 7 = RNM */
/* 8 = Allocate d'une conversatio*/
/* - CHAR(8) format = 'PWFS0100' */
/* - CHAR(4) type d'ouverture (1=oui, 0=non) */
/* - CHAR(1) Read */
/* - CHAR(1) write */
/* - CHAR(1) Read/write */
/* - CHAR(1) delete possible */
/* 37 A 40 - BIN(4) lg du nom de fichier */
/* 41 A -- - CHAR(??) nom du fichier */
/* */
/*********************************************************************/
/* EXTRACTION DES PARAMETRES */
CHGVAR VAR(&LGPATH) VALUE(%BIN(&PARAM 37 4))
IF COND(&LGPATH > 128) THEN(CHGVAR VAR(&LGPATH) +
VALUE(128))
CHGVAR VAR(&UNICODE) VALUE(%SST(&PARAM 41 &LGPATH))
/* CVT UNICODE -> EBCDIC */
CALL UNICODE PARM(&UNICODE 128 &PATH)
/* REFUS SI CHEMIN COMMENCE PAR QSYS.LIB */
IF (%SST(&PATH 1 9) = '/QSYS.LIB') CHGVAR &VALID '0'
/* SINON OK */
ELSE CHGVAR &VALID '1'
ENDPGM
|