1000 %title "vax_basic_foreign_cmd.bas" %ident "version 1.00" ! !0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 !1 2 3 4 5 6 7 8 9 0 1 2 3 !========================================================================================================================= ! Title : vax_basic_foreign_cmd.bas ! Author : Neil S. Rieck (Kitchener/Waterloo/Cambridge, Ontario, Canada) ! : (http://www3.sympatico.ca/n.rieck) (mailto:n.rieck@sympatico.ca) ! Purpose: to demo how to read command line parameters (works like "main(int argc, char *argv[])" in DEC-C) ! Usage : this program must be loosely connected to DCL as a foreign command like so: ! $command :== $ mypath:myprogram.exe ! then started from DCL like so: ! $command param1 param2 param3 (where params are optional command line args) ! History: ! 1.00 991126 1. original program !========================================================================================================================= option type=explicit ! external long function lib$get_foreign( string by desc, string by desc, word by ref, long by ref) ! declare long rc% ,& i%, j% ,& string junk$ ! rc% = lib$get_foreign(junk$,,,) print "command line params: "; junk$ ! if junk$ <> "" then junk$ = junk$ + " " ! add a trailing space junk$ = edit$( junk$, 16%) ! multiple spaces + tabs to one space i% = 1% ! start at char #1 j% = 9999% ! for 1st pass thru while/next while j% > 0% j% = pos( junk$, " ", i%) ! find next space if j% > i% then ! if one was found print "param: "; seg$( junk$, i%, j%-1%) ! then extract the string in between i% = j% + 1% ! advance the starting pointer end if next end if ! end
Back to OpenVMS
Back to OpenVMS Demo Index
Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.