Das Modul Arguments II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

ArgsDemo.m2
PROCEDURE ProcessArgs;
   VAR flag: CHAR;
BEGIN
   avalue := 0; bvalue := ""; cflag := FALSE;
   dvalues[0] := 0; dvalues[1] := 0;
   InitArgs("[-a card] [-b string] [-c] [-d card1 card2] text");
   WHILE GetFlag(flag) DO
      CASE flag OF
      | "a":   FetchCard(avalue);
      | "b":   FetchString(bvalue);
      | "c":   cflag := TRUE;
      | "d":   FetchCard(dvalues[0]); FetchCard(dvalues[1]);
      ELSE     Usage;
      END;
   END;
   FetchString(text); AllArgs;
END ProcessArgs;

*Mit InitArgs beginnt die Abarbeitung der Kommandozeile von vorne. Übergeben wird ein Teil der Zeile, die bei Usage ausgegeben wird.
 
*GetFlag holt die nächste Option, sofern vorhanden. Wenn keine Option vorliegt, wird FALSE zurückgeliefert.
 
*FetchCard und FetchString holen ein Argument ab. Wenn keines vorliegt, wird automatisch Usage aufgerufen.
 
*Usage gibt eine Fehlermeldung aus und beendet das Programm.
 
*AllArgs ruft Usage auf, wenn noch unbearbeitete Argumente übrig geblieben sind.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 13.01.1999