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.