Probleme mit bedingten Postfixen
Thomas Berger
ThB at gymel.com
Mo Aug 27 10:17:30 CEST 2001
Lieber Herr Weisweiler, liebe Liste
> > deutet darauf hin, dass zwischen der Ausgabe von #930
> > und der von #931 noch eine andere echte und im Test-Datensatz
> > belegte Kategorie in der Parameterdatei steht (vielleicht
> > unauffaellig, da scheinbar Sprungmarke: #925 Z #zz 0).
>
> natuerlich! Das ist die Loesung. Zugleich jedoch auch die
> Berechtigung und sogar Notwendigkeit fuer mich, bei meiner
> "umstaendlichen" Parametrierung zu bleiben.
Ich weiss natuerlich nicht, was Sie im konkreten Fall
tun, allgemein spart man sich aber einiges, wenn man
als Sprungmarken nur fuer diesen Zweck reservierte
Sonderkategorien nimmt (im Standardschema etwa #98a ff
(problematische Konvention, da diese Kaetegorien eine
Bedeutung haben, jedoch in Braunschweig nicht benutzt
werden) oder #J0 ff (dafuer reserviert, aber nicht benutzt):
- Platz: Wenn man weiss, dass die Kategorie nie vorkommt,
genuegt die Zeile
#J0
um das Sprungziel zu definieren, sonst muss man ja
sagen (je nach Wert von ke)
#98 e0
#98 e0 #zz 0
(bzw. "Z" statt "e0" ist effizienter)
#J0 ist kuerzer zu schreiben, und nimmt weniger
Programmspeicher weg
- Zeit
#J0 ist schneller zu schreiben, und nimmt weniger
Programmspeicher weg und macht daher Parameterdateien
schneller
- Aerger:
1. Bedingte Postfixe haengen an der Tatsache, ob eine
Kategorie ~erfolgreich im Datensatz vorhanden~, d.h.
obwohl #kkf Z #zz 0 keine Ausgabe erzeugt, zwingt
es doch noch ausstehende Postfixe zur Landung, ABER NUR,
wenn #kkf im aktuellen Satz vorhanden ist. Sprungmarken-
Kategorien interferieren nie mit bedingten Postfixen,
reale Kategorien (#kkf, #uxy) manchmal und Pseudokategorien
(#nr, #dt, #etc.) immer. [Umgekehrt kann man natuerlich
Sprungmarkenkategorien nie dazu benutzen, Anwendervariable
zu initialiseren, zu loeschen oder nebenbei etwas auszugeben]
2. Selbst harmlose Konstruktionen wie
#40 +#90 0
#20 u
#90 R
koennen manchmal furchtbare Konsequenzen haben, wenn etwa
die #90er-Zeile fuer einen bestimmten Listendruck-Zweck
etc. deaktiviert wird. [Umstellung auf eine Sprungmarken-
kategorie benoetigt hier natuerlich mehr Platz und nicht
weniger]
3. an irgendeiner Stelle vergisst man dann doch das "e0"
oder "#zz 0" hinter einer realen Kategorie, die als
Sprungmarke benutzt wird, d.h. auch ohne bedingte Postfixe
hat man dann bei gewissen Datensaetzen Probleme mit
"Schmutz" in der Ausgabe.
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro