Les programmes systeme (QCMDEXC,QDCXLATE ...)

BoTTom |    Changer de couleur
 
                Les routines système .  (API historiques du 38)
 
 
      *
      * EXECUTION D'UNE COMMANDE (affichage de l'invite si "?" dans la cde)
      * ------------------------
     C                     CALL 'QCMDEXC' 
     C                     PARM           CMDE   80        COMMANDE
     C                     PARM 80        LEN    155       LG Cde
     C*
 
GAP4 :
 
     DQCMDEXC          PR                  EXTPGM('QCMDEXC')
     D  cmd                         256     CONST
     D  lg                           15  5  CONST
 
      /free
        QCMDEXC('wrksplf' : 7) ;
      /end-free
 


|    Changer de couleur
 
      *
      * VERIFICATION D'UNE COMMANDE (et retour de la commande paramétrée)
      * ---------------------------
     C                     CALL 'QCMDCHK' 
     C                     PARM           CMDE   80        COMMANDE
     C                     PARM 80        LEN    155       LG Cde
     C*
GAP4 :
 
     DQCMDCHK          PR                  EXTPGM('QCMDCHK')
     D  cmd                         256     CONST
     D  lg                           15  5  CONST
 
      /free
 
        CALLP(e) QCMDCHK('wrksplj' : 7) ;
 
        if %error ...
 
      /end-free
 


|    Changer de couleur
 
      *
      * CONVERSION D'UNE CHAINE DE CARACTERES 
      * --------------------------------------
     C                     CALL 'QDCXLATE' 
     C                     PARM 50        LEN     50       LG CHAINE
     C                     PARM           CHAINE 50        CHAINE
     C                     PARM           TABLE  10        NOM TABLE
     C                     PARM           BIBLI  10        BIBLI ou *LIBL
     C*
GAP4 :
 
     DQDCXLATE         PR                  EXTPGM('QDCXLATE')
     D  lg                            5  0  CONST
     D  chaine                       50
     D  table                        10     CONST
     D  bib                          10     CONST
 
      /free
        QDCXLATE(%len(mavariable) : mavariable : 'QSYSTRNTBL' : 'QSYS')
      /end-free
 


|    Changer de couleur
 
      *
      * RECHERCHE DANS UNE CHAINE DE CARACTERES 
      * ----------------------------------------
     C                     CALL 'QCLSCAN' 
     C                     PARM           CHAINE 45        <----------!
     C                     PARM 45        CHAINL  30       LG CHAINE -!
     C                     PARM           DEBUT   30       POS DéBUT
     C                     PARM           RECH             RECHERCHE<-!
     C                     PARM           RECHL   30       LG RECH   -!
     C                     PARM           TRADUC  1        '0' PAS CONVERT
     C*                                                    '1' MIN-MAJ
     C                     PARM           CADR    1        '0' PAS CADRAGE
     C*                                                    '1' CADRAGE à G
     C                     PARM           JOKER   1        CARACT. JOKER
     C*                                                    (TOUJOURS VRAI)
     C                     PARM           RESULT  30       RESULTAT
     C*                                                    >0 POSITION
     C*                                                    =0 NON TROUVé
     C*                                                    <0 ERREUR
 
 


|    Changer de couleur
 
GAP4 :
 
     DQCLSCAN          PR                  EXTPGM('QCLSCAN')
     D chaine                        50     CONST
     D chainel                        3  0  CONST
     D debut                          3  0  CONST
     D recherche                     10  0  CONST
     D recherchel                     3  0  CONST
     D casse                           n    CONST
     D cadrage                         n    CONST
     D joker                          1     CONST
     D resultat                       1
 
      /free
 
        QCLSCAN('test de chaine' : 50 : 1 : 'chaine' : 6 : *on : *off
                '*' : result) ;  // result contient 9
 
      /end-free
 
 


|    Changer de couleur
      *
      * ECRITURE DANS UNE DTAQ     (les exemples ci apres sont donnés pour
      * ----------------------                des DTAQ sans notion de clé)
     C                     CALL 'QSNDDTAQ' 
     C                     PARM           DTAQ   10        NOM DTAQ
     C                     PARM           LIB    10        BIBLI ou *LIBL
     C                     PARM 20        DTALEN  50       LG DATA
     C                     PARM           DATA   20        DATA à ECRIRE
     C
 
GAP4 :
 
     DQSNDDTAQ         PR                  EXTPGM('QSNDDTAQ')
     D dtaq                          10     CONST
     D bib                           10     CONST
     D datal                          5 0   CONST
     D data                          50     CONST
 
      /free
        QSNDDTAQ('MADTAQ' : 'MABIB' : 4 : 'test') ;
      /end-free
 


|    Changer de couleur
      *
      * LECTURE D'UNE DTAQ 
      * ------------------
     C                     CALL 'QRCVDTAQ' 
     C                     PARM           DTAQ   10        NOM DTAQ
     C                     PARM           LIB    10        BIBLI ou *LIBL
     C                     PARM 20        DTALEN  50       LG DATA
     C                     PARM           DATA   20        DATA à RECEVOIR
     C                     PARM           WAIT    50       TEMPS ATTENTE
     C*                                                    0 PAS d'ATTENTE
     C*                                                    >0 NB DE SEC.
     C*                                                    <0 ILLIMITé.
 GAP4 :
      DQRCVDTAQ         PR                  EXTPGM('QRCVDTAQ')
      D dtaq                          10     CONST
      D bib                           10     CONST
      D datal                          5 0   CONST
      D data                          50
      D wait                           5 0   CONST
       /free
         QRCVDTAQ('MADTAQ' : 'MABIB' : %len(mavariable) : mavariable : -1) ;
       /end-free





©AF400