[Allegro] Rücksprung aus Unterprogrammen

Bernhard Eversberg ev at biblio.tu-bs.de
Di Okt 26 10:22:08 CEST 2010


Am 26.10.2010 09:47, schrieb Fischer, Thomas:
>
> ich habe eine vielleicht dumme Frage: was ist der beste (sicherste
> und kürzeste) Weg, aus einem Unterprogramm zurückzukehren? An der
> Stelle, wo ich bei Perl so etwas wie return if ($test == 0);
> einsetzen würde, habe ich in meinem Exportparameterdateien #ute +-
> x"==0" e0 stehen, das scheint wie gewünscht zu funktionieren. Die
> Sprungmarke +- wird in der Dokumentation aber so beschrieben: d) der
> Abbruchbefehl    +-      der laufende Exportsatz wird nicht
> ausgegeben Ich weiß nicht so recht, was das  bedeutet, weder
> innerhalb eines Unterprogramms noch im Hauptprogramm: Normalerweise
> sind vorher doch schon alle möglichen Teile des Datensatzes
> ausgegeben. Was ist in diesem Zusammenhang ein "Exportsatz"?
>

Das letzte zuerst: Ein "Exportsatz" ist, was bei Abarbeitung eines
einzelnen ak-Befehls rauskommt. Ist eine Zerlegung spezifiziert,
wie in

ak=20" -"+H

dann löst jede sich ergebende Zeichenfolge eine Abarbeitung von
#-H aus, also jede einen eigenen "Exportsatz". Bei Indexparametern
ist das dann, unintuitiv, ein Registereintrag. Das ist jeweils eine
Zeile und nicht mehr, weswegen dann mit  #+-  einfach nichts
rauskommt, kein Eintrag also für die betr. Zeichenfolge.

Bei "normalem" Export ist es ja oft so, daß nur ein einziger
Exportsatz je Datensatz rauskommen soll, der aber viele Zeilen
haben kann; falls dabei überhaupt ak-Befehle verwendet werden.
Eine ganz andere Situation also. Da ist es ratsam, einen Abbruchbefehl
+-  gleich zu Beginn der Abarbeitung einzubauen, weil sonst ja
schon einiges ausgegeben sein kann, was nicht rückholbar wäre.

Im Unterprogramm hat  +-  nur die Wirkung, daß es abgebrochen wird.

B.E.



Mehr Informationen über die Mailingliste Allegro