Slight Correction:
The UD version should be globally cataloged and not have the MD proc. I've
been spending a lot of time with my D3 clients and forgot about that method.
You could also use PROCREAD and the MD item with all flavors.

Thanks.

----- Original Message -----
From: "Mark Johnson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, October 16, 2004 9:29 PM
Subject: Re: [U2] [UD] running a subroutine


> If you read the article I wrote for Spectrum within the last 2 years and
for
> Datastream in the early 1980's, I have a very powerful quick way to do
this
> and virtually every databasic thing from tcl. It eliminates all of the
> stupid 3-5 lines 'test' programs that clutter so many of my client's
> systems.
>
> It borrows from Dartmouth Basic where their TCL was always in 'Basic' and
> not outside of it (interpeted). It is so damn simple that it should come
> with all flavors of the MV databases.
>
> I call it PRINT and will summarize it here and offer any reprints of the
> Spectrum Article. It basically takes the entire TCL line and considers it
a
> databasic program. Here it goes:
>
> EDIT MD PRINT    (Hopefully new item)
> NEW ITEM
> 001    PQN
> 002     HRUN BP PRINT
> 003    P
>
> EDIT BP PRINT    (Unidata version. D3 should use TCLREAD and MCD should
use
> PROCREAD)
> NEW ITEM
> ***
> * PRINT SINGLE LINE PROGRAM
> * MAJ 010281
> ***
>     [EMAIL PROTECTED]
>     OPEN "BP" ELSE STOP
>     DELETE "%PRINT%"
>     DELETE "_%PRINT%"
>     CONVERT CHAR(254) TO " " IN TEST
>     WRITE TEST ON "%PRINT%"
>     EXECUTE "BASIC BP %PRINT%"
>     PRINT
>     EXECUTE "RUN BP %PRINT%"
>     END
>
> So you can type
> PRINT 5+5
> or
> PRINT OCONV("12345","MTHS")
> or
> PRINT ; FOR I=1 TO 10 ; PRINT I,I*10 ; NEXT I
> or for the sake of this original posting:
> PRINT ; CALL SUBROUTINENAME(VAL1, VAL2, VAL3)
>
> Anything that can be written on a single line of basic code will work. The
> word PRINT is simply the VOC verb to process the rest of it.
>
> 2 Caveats:
> 1. You cannot have an active list as my program processes some other TCL
> commands that may cause the list to be mis-processed.
> 2. Be careful of any hanging ELSE or THEN statements as everything is on
one
> line.
>
> Here's an example of working forward in an ELSE environment.
> PRINT ; OPEN "MD" TO F.MD THEN READ REC FROM F.MD, "FRED" THEN
REC<3>="BOB"
> ; WRITE REC ON "BILL"
>
> This is probably my most favorite utility as I am constantly testing for
> tiny code snippets.
>
> Hopefully this works for many of you.
>
> Mark Johnson
>
>
> ----- Original Message -----
> From: "Shawn Waldie" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, October 15, 2004 6:59 PM
> Subject: [U2] [UD] running a subroutine
>
>
> > Wondering if there is a way to execute a subroutine from the colon
> > prompt.
> >
> > Let's say I have a subroutine that is defined as having 2 input args
> > like:
> >
> > SUBROUTINE subr.name(arg1,arg2).
> >
> >
> > I would like to test it from the colon prompt without having to
> > hard-code the values of arg1/arg2...something like:
> >
> > :RUN BP subr.name "value.of.arg1" "value.of.arg2"
> >
> > Is something like this possible?  What I've tried so far hasn't worked.
> >
> > ************************************************
> > * Shawn Waldie                San Juan College *
> > * Programmer/Analyst         4601 College Blvd *
> > * Phone: (505)566-3072   Farmington, NM  87402 *
> > *      email: [EMAIL PROTECTED]       *
> > *                                              *
> > * HP-UX 11.11   UniData 6.0.4    Colleague R17 *
> > ************************************************
> > -------
> > u2-users mailing list
> > [EMAIL PROTECTED]
> > To unsubscribe please visit http://listserver.u2ug.org/
> -------
> u2-users mailing list
> [EMAIL PROTECTED]
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[EMAIL PROTECTED]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to