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