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