Question for Alpha Users - Parameter passing QUICK Screens - An Answer
Terry Pickering
pickering@myself.com
Tue, 17 Aug 1999 19:55:53 -0700
Well, after playing around a bit, I came up with a small command procedure
that will allow you to substitute up to seven different parameters in a DCL
command procedure.
Basically, you pass this command procedure the "original" command procedure
file name and up to seven parameters. A new command procedure with "NEW-" +
"original" name is created with the substitutions made. You can then submit
this new procedure. The nice thing about it is you can use the original
command procedure interactively if you still want to.
Here is how it would be called in QUICK
PROCEDURE DESIGNER JOB
BEGIN
LET T-P1 = "COMMANDFILE.COM"
LET T-P2 = "2001"
LET T-P3 = "01"
LET T-P4 = "YES"
LET T-COMMAND = "@REPLACE_PARAMETERS.COM " + T-P1 + T-P2 + T-P3 + T-P4
RUN COMMAND T-COMMAND
LET T-COMMAND = "SUBMIT NEW-" + T-P1
RUN COMMAND T-COMMAND
LET T-COMMAND = "PURGE NEW-" + T-P1
RUN COMMAND T-COMMAND
END
And here is the DCL code for it.
$! REPLACE_PARAMETERS.COM
$! p1 = command file name to replace
$! p2 = parameter 1
$! p3 = parameter 2
$! p4 = parameter 3
$! p5 = parameter 4
$! p6 = parameter 5
$! p7 = parameter 6
$! p8 = parameter 7
$! NEW FILE WILL BE NAMED NEW-"filename"
$
$ SET NOVERIFY
$ INPUT_FILE = F$SEARCH(P1,1)
$ SEMI = F$LOCATE(";",INPUT_FILE)
$ INPUT_FILE = F$EXTRACT(0,SEMI,INPUT_FILE)
$ BRACKET = F$LOCATE("]",INPUT_FILE)
$ INPUT_FILE = F$EXTRACT(BRACKET+1,20,INPUT_FILE)
$ OUTPUT_FILE = "NEW-" + ''INPUT_FILE'
$ OPEN/READ DCL_FILE 'INPUT_FILE
$ OPEN/WRITE NEW_FILE 'OUTPUT_FILE
$
$_READLOOP:
$ READ/END_OF_FILE=_NOMORE DCL_FILE COMMAND_LINE
$
$ IF COMMAND_LINE .EQS. "'P1'" THEN COMMAND_LINE = P2
$ IF COMMAND_LINE .EQS. "'P2'" THEN COMMAND_LINE = P3
$ IF COMMAND_LINE .EQS. "'P3'" THEN COMMAND_LINE = P4
$ IF COMMAND_LINE .EQS. "'P4'" THEN COMMAND_LINE = P5
$ IF COMMAND_LINE .EQS. "'P5'" THEN COMMAND_LINE = P6
$ IF COMMAND_LINE .EQS. "'P6'" THEN COMMAND_LINE = P7
$ IF COMMAND_LINE .EQS. "'P7'" THEN COMMAND_LINE = P8
$
$ WRITE NEW_FILE COMMAND_LINE
$ GOTO _READLOOP
$
$_NOMORE:
$ CLOSE DCL_FILE
$ CLOSE NEW_FILE
Hope this helps someone else out with a similar need.
Regards....
Terry Pickering CompuGroup, Inc.
pickering@myself.com Portland, Oregon USA
www.teleport.com/~compugrp Cessna 172 & Lancair ES
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.