在CL中读一个文件

/*------------------------------------------------------------*/
/* */
/* List all members in a source file and Read through */
/* the list using CLP. Then count them-why ask why???? */
/* */
/*------------------------------------------------------------*/
PGM

/*----------------------------------------*/
/* Declare vaiable count and the file */
/* we use IBM supplied file QAFDMBRL */
/* because our file */
/* will only exist in QTEMP and when you */
/* go to recompile this later you will */
/* need it. */
/*----------------------------------------*/
DCL VAR(&COUNT) TYPE(*DEC) LEN(5 0)
DCL VAR(&CHRCOUNT) TYPE(*CHAR) LEN(5)
DCLF FILE(QAFDMBRL)

/*----------------------------------------*/
/* List all members in the IBM source */
/* file QSYSINC/QRPGLESRC. */
/*----------------------------------------*/
DSPFD FILE(QSYSINC/QRPGLESRC) TYPE(*MBRLIST) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/WORKFILE)


/*----------------------------------------*/
/* Override to our file in QTEMP */
/*----------------------------------------*/
OVRDBF FILE(QAFDMBRL) TOFILE(QTEMP/WORKFILE)

/*----------------------------------------*/
/* RCVF = Read */
/* Monitor for end of file message. */
/*----------------------------------------*/
LOOP: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(EXIT))


CHGVAR VAR(&COUNT) VALUE(&COUNT + 1)
CHGVAR VAR(&CHRCOUNT) VALUE(&COUNT)

/*----------------------------------------*/
/* Go back and read another record */
/*----------------------------------------*/
GOTO CMDLBL(LOOP)

/*----------------------------------------*/
/* Display the final count and leave */
/*----------------------------------------*/
EXIT: SNDPGMMSG MSG('The total members in source file +
QSYSINC/QRPGLESR is :' || &CHRCOUNT)
DLTOVR FILE(*ALL)
ENDPGM

posted @ 2008-01-09 14:16  深渊野鱼  阅读(386)  评论(0编辑  收藏  举报