Marc's Place

E$GPRMPT - Ophalen opdrachtregel-opties




Aanroep
 
xcall e$gprmpt (optie-record)
 
Common velden vóór aanroep
*N/A
Parameters te vullen bij aanroep
optie-record (a*)
Een record dat een array van [30]A42 bevat of een veld van A1260 dat in stukken van 42 bytes is ingedeeld:
record param
group opts, [30]a
opt, a2
arg, a40
endgroup
Van deze array dient de kolom OPT met opties gevuld te worden die aan het programma meegegeven moeten / kunnen worden, eventueel met verplichte argumenten.
 
Een optie wordt gedefinieerd door een letter, gevolgd door een uitroepteken (!) indien de optie een argument verwacht. Een optie kan één argument accepteren. Een argument is een aaneengesloten reeks tekens. Een uitzondering is de optie '-'. Alles wat hierop volgt wordt bij deze optie als argument geaccepteerd. Deze optie hoort dan ook als laatste in de rij aan het programma te worden meegegeven.
Parameters gevuld bij terugkeer
optie-record (a*)
Een record dat een array van [30]A42 bevat of een veld van A1260 dat in stukken van 42 bytes is ingedeeld:
record param
group opts, [30]a
opt, a2
arg, a40
endgroup
Bij terugkeer is de kolom ARG gevuld met de gewenste argumenten. Om aan te geven aan het programma dat een optie in zijn geheel niet is gevonden of dat er geen argument was meegegeven terwijl dit toch wel werd verwacht, wordt ARG gevuld met:
! = Optie niet meegegeven
* = Verwacht argument niet gevonden
Common velden gevuld bij terugkeer
*N/A
Voorbeelden
 

Hier volgen diverse voorbeelden van programma-aanroepen met opstart-opties:

Zó worden de programma opties van te voren gedefinieerd in het programma:

    opts[1].opt = 'a!'
    opts[2].opt = 'b'
    opts[3].opt = 'c!'
    opts[4].opt = '-'

Als dan vervolgens het programma wordt aangeroepen:


$ dbr programma -a arg1 -b -c arg2 -- dit komt als één tekst mee

$ dbr programma -a -b -c arg1 arg2 -- dit komt als één tekst mee

$ dbr programma -a -b -c -- arg1 arg2 dit komt als één tekst mee

$ dbr programma -c -b -a -- arg1 arg2 dit komt als één tekst mee


dan is het resultaat:

    opts[1].arg bevat 'ARG1'
    opts[2].arg
    bevat niets (B is niet verplicht)
    opts[3].arg
    bevat 'ARG2'
    opts[4].arg
    bevat 'DIT KOMT ALS ÉÉN TEKST MEE'

Zoals je ziet, in hoofdletters. De routine let niet op hoofd- en/of kleine letters.


Bij meerdere verplichte opties worden de argumenten van links naar rechts afgewerkt, ongeacht hun plaats. Vandaar dat de vier aanroepen alle hetzelfde resultaat hebben. De opties zijn niet zomaar te verwisselen, zoals bij de vierde aanroep is gedaan:


$ dbr programma -c arg1 -b -a arg2 -- dit komt als één tekst mee


heeft een heel ander resultaat. C krijgt ARG1 en A krijgt ARG2. Dat is duidelijk andersom ten opzichte van de eerste aanroep uit het vorige voorbeeld.

© 1997- Marc Vos (and others)   -   Privacy Statement   -    Contact Me