[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

595.0. "Work-around for 8 parameter max" by PARSEC::COTE () Tue Nov 10 1987 07:54

	Hello,

	I am trying to find a solution to my problem and I hope someone
	can help.

	Specifically, I need to pass more than eight parameters to a
	command procedure.  This particular command procedure requires
	ten responses.  The plan is to gather the respones, to the 
	procedure, in a BASIC program and then execute the DCL command
	procedure either by creating a process or spawning a subprocess.
	From this point I would have to pass the parameters to the
	procedure.

	All attempts have led to the response:
	DCL_W_DEFOVF, Too many command procedure parameters - limit to eight

	Since the command procedure in question is Local Area VAXcluster
	software, altering the code is not acceptable.  Also, 
	INQUIRE/NOPUNCT is used to make all on the symbol assignments.

	I appreciate any help that anyone can offer.

	Gregg Cote
T.RTitleUserPersonal
Name
DateLines
595.1logicals, symbols, or (ungh) filesBAXTA::PFISTER_ROBAre we having fun yet?Tue Nov 10 1987 09:015
    You could pass parameters by route of symbols or logicals, or if
    worse comes to worse, write stuff to a file in one procedure, and
    read it back in by the other.  
    
    Robb
595.2UFP::MURPHYI'm not a hacker, but play one on TVTue Nov 10 1987 09:454
    You could also quote the parameter string and pick them apart later.
    (In other words, pass everything into P1 and use F$ELEMENT to extract
    the separate parameters).
    	-Rick
595.3call from another procedureNACAD::SITLERTue Nov 10 1987 16:3734
re .0:

(Is PARSEC::JACKSON (COMMAND_PROCEDURES note 494.0) your alias?)

I'm a bit confused.  You say that the command procedure in question is part 
of a package and that it is not acceptable to alter the code.  Yet you want 
to pass it more than 8 values as *parameters*.  Assuming that it now 
solicits 10 responses *interactively*, making those responses *parameters* 
would involve changing the code.  Perhaps you mean that it is not acceptable 
to change the "feel" of the procedure to an interactive user, but you would 
nonetheless like to parameterize the inputs.

I would suggest having your BASIC program write *another* command procedure 
that calls your procedure and passes it the desired inputs.  This calling
procedure would look something like this:

$!CALLER.COM -- call MYPROC.COM with particular inputs
$!
$!	created by <BASIC-program> on <date>
$!	<any other comments you care to include>
$!
$
$ @MYPROC
<response-1>
<response-2>
.
.
.
<response-10>
$ exit

CALLER.COM can be invoked (@), or SPAWNed, or SUBMITted to BATCH.  If it is
SUBMITted, and you wish to run MYPROC from a sub-directory, you'll have to
include a line "$ SET DEF [.<subdir>]" in CALLER.COM. 
595.4Can't feed SYS$INPUT => SYS$INPUTCHOVAX::YOUNGBack from the Shadows Again,Tue Nov 10 1987 21:548
    Re .3:
    
    I do not believe that a command procedure can feed input to another
    command procedure in this manner.  This is how a command procedure
    would send input to an image, but I do not think that it will work
    for another command procedure.
    
    --  Barry "one who has tried"
595.5SPAWN or SUBMITNACAD::SITLERTue Nov 10 1987 22:424
re .4:

Oops.  CALLER.COM will not work as planned if you invoke (@) it.  But it 
*will* work if you SPAWN or SUBMIT it.
595.6P9:== ???LEPTON::HIRSTLean, Mean, FastWed Nov 11 1987 03:5912
    	If you actually build the symbol names within the procedure
    
    $ count=1
    $ foo=p'count
    
    	could you build p9 outside the call
    
    $ p9:==par_no_9
    
    	Just a thought
    
    	Steve
595.7Reply from the "Alias"PARSEC::JACKSONWed Nov 11 1987 22:2421
                         
    Re: .3
    
    Gregg (PARSEC::COTE) and I (PARSEC::JACKSON) work together, hence
    the similar notes in both the HACKERS and the COMMAND_PROCEDURES
    conferences.  Let us consider this efficient coverage.
    
    To explain not wanting to run *interactively*, we are writing an
    application that will gather the user's inputs and use those inputs
    to execute the LAVC add (satellite) function.  This will all be
    transparent to the user.  Because this software is a layered 
    product, it is unacceptable to modify the existing code.
    
    Re: all
    
    Thanks for all of your help.  I have found, from your info, that
    the DCL command SPAWN/INPUT=<filename> does work.  Is there any
    reason that this should not work in BASIC?
    
    Debora Jackson-Gerfen