REXX: Aus- und Eingabe

Aus Wikibooks
Wechseln zu: Navigation, Suche
Nuvola apps bookcase 1.svg REXX

Ausgabe[Bearbeiten]

Ausgabe über den Bildschirm[Bearbeiten]

Wenn man in REXX etwas über den Bildschirm ausgeben will, macht man das über die Anweisung say:

say ausdruck

Der Ausdruck wird zur Standardausgabe ausgegeben.

Ausgabe in eine Datei[Bearbeiten]

call lineout dateiname,ausdruck

Dabei kann als Dateiname 'stderr' für die Standardfehlerausgabe und 'stdout' bzw. der Leerstring '' für die Standardausgabe (dann entsprechend der SAY-Anweisung) angegeben werden.

Eingabe[Bearbeiten]

Eingabe über die Tastatur[Bearbeiten]

Die Eingabe über die Tastatur erfolgt über die Anweisung pull:

pull variable

Strenggenommen ist pull eine Abkürzung für parse upper pull, konvertiert also die Daten in Großschreibung; außerdem kommen die Daten aus der aktuellen Standard-Queue, sofern diese Daten enthält (was allerdings normalerweise nicht der Fall ist).

Eingabe aus einer Datei[Bearbeiten]

variable=linein(dateiname)

Wenn man sicher gehen will, dass im Eingabestrom noch Zeilen vorhanden sind, kann man die Funktion lines() verwenden:

variable = lines(dateiname)

Der zurückgelieferte Wert gibt an, ob sich noch Zeilen im Eingabestrom befinden (0 oder 1); im Fall der aktuellen Standardqueue ("QUEUE:"), oder wenn das Dateisystem Zeilenangaben unterstützt, kann es sich auch um die Anzahl handeln.

Für den Fall, dass man einzelne Zeichen lesen will, gibt es die zu linein() und lines() analogen Funktionen charin() und chars()

charin(dateiname)
variable = chars(dateiname)

Übergabe bei Start eines REXX-Programms[Bearbeiten]

Wie bei den meisten Programmiersprachen lassen sich beim Start eines Programms Argumente übergeben. Diese lassen sich mit der parse-arg-Anweisung oder der Funktion arg ermitteln:

/* Ein REXX-Program */
parse arg console /* übergebener Wert nun in der Variablen console */
say
anzahl = words(console)
do index = 1 to anzahl by 1
   say word(console,index)
end

Der Aufruf von arg() liefert zurück, ob Argumente angegeben wurden (arg() == 1) oder nicht (arg() == 0); mit arg(1) (anstelle von parse arg) läßt sich der Inhalt des ersten (und bei den meisten Rexx-Interpretern beim Aufruf von der Kommandozeile einzigen möglichen) übergebenen Arguments auslesen.