Lire 2 fois le même fichier dans un CL.

/* Serge GOMES Lire 2 fois le même fichier dans un CL */         
/* 1er appel  CALL PGM(RECURS) PARM('0') */                      
             PGM        PARM(&PAR)                               
             DCL        VAR(&PAR) TYPE(*CHAR)                    
             DCLF       FILE(BOOKS)                              
 LECTURE:    RCVF      /* Boucle Lecture */                      
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(FINLEC)) 
  /*                                                          */ 
  /*     ICI TRAIEMENT DE VOTRE FICHIER                       */ 
  /*                                                          */ 
             GOTO       CMDLBL(LECTURE)                          
 FINLEC:     IF         COND(&PAR *NE '1') THEN(DO)              
             CHGVAR     VAR(&PAR) VALUE('1')                     
             CALL       PGM(RECURS) PARM(&PAR)                   
             ENDDO                                               
 ENDPGM:     ENDPGM                                              

 La v5r30 apporte un nouveau paramètre OPNID() sur les commandes DCLF, RCVF, SNDRCVF, SNDF permettant de manipuler plusieurs fichiers (5 maxi). Ce paramètre reçoit en valeur une chaine de caractère (10 maxi) permettant de l’identifier.
Les zones des fichiers manipulés, devront être préfixées par cette valeur (xxxxx_nomzone).


              PGM
              DCLF       FILE(MYFILE) OPNID(FICH)
              DCLF       FILE(DSPFEX) OPNID(ECRAN)


   DEB:       DOWHILE    COND(*NOT &ECRAN_IN03)
                RCVF       OPNID(FICH)
                MONMSG     MSGID(CPF0864) EXEC(LEAVE CMDLBL(DEB))
                CHGVAR &ECRAN_ZID &FICH_IDNOM
                SNDRCVF OPNID(ECRAN)
              ENDDO
              ENDPGM

Print Friendly, PDF & Email