next up previous
Nächste Seite: Arts Aufwärts: Bibliotheksmoduln Vorherige Seite: AMScan

Arguments

Das Modul Arguments erlaubt den Zugriff auf die Programmargumente, die der Benutzer beim Aufstarten des Programms angibt. Unterstützt werden Argumente, die vom CLI aus auf der Befehlszeile oder auf der Workbench durch erweiterte Selektion übergeben werden.

Die Prozedur NumArgs liefert die Anzahl der Programmargumente. Diese Zahl gibt entweder die Anzahl Argumente der Befehlszeile oder die Anzahl selektierter Workbench-Ikonen an. Wurde das Programm ohne Argumente aufgerufen. liefert NumArgs den Wert 0.

Die Funktion GetArg liefert den Wert des gewünschten Arguments, sofern dieses existiert. Ein Aufruf mit Argumentnummer arg=0 liefert den Namen des aufgestarteten Programms. Ebenfalls wird die Anzahl der Zeichen durch den Parameter len zurückgegeben. Bei jedem Aufruf von GetArg erhält die Variable quoted den Wahrheitswert TRUE, falls das Argument doppelte Anführungszeichen enthielt. Dies ermöglicht die Unterscheidung von Schlüsselwörtern und Argumenten des gleichen Namens.


\begin{example}
So zeigt
\begin{quote}\tt dir \dq all\dq \end{quote}den Inhalt d...
...den gesamten Verzeichnisbaum des aktuellen Verzeichnisses
ausgibt.
\end{example}

GetArg verbirgt die Unterschiede der Parameterübergabe von CLI und Workbench vor dem Benutzer. Während ein Argument der Befehlszeile aus einer einfachen Zeichenkette besteht, setzt sich ein Workbench-Argument aus zwei Bestandteilen zusammen. Einerseits ist das der Name des Arguments und andererseits eine Referenz auf das Verzeichnis der entsprechenden Datei. Bei Workbench-Argumenten setzt der Aufruf von GetArg das aktuelle Verzeichnis des Programms auf das Verzeichnis der Argumentdatei. Dies geschieht durch einen Aufruf der Funktion Dos.CurrentDir.

Die Befehlszeile wird folgendermassen interpretiert: Leerschläge werden als Trennung zwischen zwei Argumenten ausgelegt. Durch die Verwendung von doppelten Anführungszeichen können aber auch Leerschläge in das Argument eingefügt werden. Alle Zeichen innerhalb zweier Anführungszeichen werden unverändert in das Argument übernommen. Die Anführungszeichen selbst üben keine Trennfunktion aus.

Ab AmigaDOS Version 1.3 bezeichnet ein leeres Argument das aktuelle Verzeichnis, beispielsweise beim copy-Befehl. Daher ist es unzulässig, mit der Verarbeitung der Argumente aufzuhören, wenn die Argumentlänge Null ist. Zunächst muss die Funktion NumArgs aufgerufen und mit diesem Wert gearbeitet werden.

Die Funktion GetLock gibt dann einen gültigen FileLockPtr zurück, wenn das Programm von der Workbench aufgerufen wurde. Dieser verweist auf das Verzeichnis des zugehörigen Arguments.7.1

Wird das Programm vom CLI aus aufgerufen, bleibt ein Aufruf von GetLock ohne Wirkung. Als Resultat wird NIL zurückgegeben.


next up previous
Nächste Seite: Arts Aufwärts: Bibliotheksmoduln Vorherige Seite: AMScan
Claudio Nieder 2000-11-12