home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
3x400
/
crtoutf.lzh
/
CPP1720.CLP
next >
Wrap
Text File
|
1985-12-02
|
4KB
|
104 lines
CPP1720: PGM PARM(&OUTFILE &FORMAT &REPLACE &MEMBERS &SIZE +
&KEYFLDS)
/* Program - CPP1720 */
/* Create output file */
DCL &OUTFILE *CHAR 20 /* Output file name */
DCL &FORMAT *CHAR 42 /* OUTFILE Command name */
DCL &REPLACE *LGL 1 /* Replace existing file? */
DCL &MEMBERS *DEC 5 /* Maximum members */
DCL &SIZE *CHAR 13 /* Output file size */
DCL &KEYFLDS *CHAR 1282 /* Key fields */
DCL &MAXMBRS *CHAR 6 /* Maximum members-*Char */
DCL &SIZE1 *CHAR 8 /* Initial file size */
DCL &SIZE2 *CHAR 5 /* Increment records */
DCL &SIZE3 *CHAR 5 /* Maximum increments */
DCL &CNT *DEC 3 /* Counter for messages */
DCL &MSGID *CHAR 7 /* Message ID */
DCL &MSGDTA *CHAR 132 /* Message data */
MONMSG MSGID(CPF0000) EXEC(GOTO RCVMSG)
REPLACE: IF (&REPLACE) GOTO CHKOBJ
CHKOBJ OBJ(%SST(&OUTFILE 01 10).%SST(&OUTFILE 11 +
10)) OBJTYPE(*FILE)
MONMSG MSGID(CPF9801) EXEC(DO) /* Ignore not found */
RCVMSG
GOTO CHKOBJ
ENDDO
SNDPGMMSG MSGID(CPF5813) MSGF(QCPFMSG) MSGDTA(&OUTFILE) +
TOPGMQ(*SAME) MSGTYPE(*ESCAPE) /* Duplicate +
file name--CANCEL. */
GOTO RCVMSG
CHKOBJ: CHKOBJ OBJ(QDDSSRC.QTEMP) OBJTYPE(*FILE) +
MBR(%SST(&OUTFILE 01 10))
MONMSG MSGID(CPF9801) EXEC(DO)
CRTSRCPF FILE(QDDSSRC.QTEMP) MBR(%SST(&OUTFILE 01 10)) +
SIZE(20 20 20) TEXT('File created by +
CRTOUTF command.')
RCVMSG
RCVMSG
RCVMSG
GOTO OVRDBF
ENDDO
MONMSG MSGID(CPF9815) EXEC(DO)
ADDPFM FILE(QDDSSRC.QTEMP) MBR(%SST(&OUTFILE 01 10))
RCVMSG
RCVMSG
GOTO OVRDBF
ENDDO
CLRPFM: CLRPFM FILE(QDDSSRC.QTEMP) MBR(%SST(&OUTFILE 01 10))
RCVMSG
OVRDBF: OVRDBF FILE(QDDSSRC) TOFILE(QDDSSRC.QTEMP) +
MBR(%SST(&OUTFILE 01 10)) LVLCHK(*NO)
CALLPGM: CALL PGM(CPP1721) PARM(&FORMAT &SIZE &KEYFLDS +
&SIZE1 &SIZE2 &SIZE3)
DLTFILE: IF (&REPLACE) DO
DLTF FILE(%SST(&OUTFILE 01 10).%SST(&OUTFILE 11 10))
MONMSG MSGID(CPF2105)
ENDDO
CHGMBRS: IF (&MEMBERS *EQ 0) DO
CHGVAR VAR(&MAXMBRS) VALUE('*NOMAX')
ENDDO
ELSE DO
CHGVAR VAR(&MAXMBRS) VALUE(&MEMBERS)
ENDDO
CRTPF: CRTPF FILE(%SST(&OUTFILE 01 10).%SST(&OUTFILE 11 +
10)) SRCFILE(QDDSSRC.QTEMP) OPTION(*NOSRC +
*NOLIST) MAXMBRS(&MAXMBRS) LVLCHK(*NO)
CHGPF: IF (&SIZE1 *EQ '*NOMAX') DO
CHGPF FILE(%SST(&OUTFILE 01 10).%SST(&OUTFILE 11 +
10)) SIZE(*NOMAX)
ENDDO
ELSE DO
CHGPF FILE(%SST(&OUTFILE 01 10).%SST(&OUTFILE 11 +
10)) SIZE(&SIZE1 &SIZE2 &SIZE3)
ENDDO
RCVMSG: CHGVAR VAR(&CNT) VALUE(1)
LOOP: IF (&CNT *LE 10) DO
RCVMSG MSGDTA(&MSGDTA) MSGID(&MSGID)
IF (&MSGID *EQ ' ') GOTO ENDPGM
IF ((%SST(&MSGID 01 02) *EQ 'CP')) +
SNDPGMMSG MSGID(&MSGID) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
MSGTYPE(*DIAG)
ELSE DO
SNDPGMMSG MSGID(&MSGID) MSGF('Q' *CAT %SST(&MSGID 01 +
03) *CAT 'MSG') MSGDTA(&MSGDTA)
ENDDO
CHGVAR VAR(&CNT) VALUE(&CNT + 1)
GOTO LOOP
ENDDO
ENDPGM: ENDPGM /* CPP1720 */