a99 Uppdate-Tipp

Thomas Berger ThB.com at t-online.de
Mi Aug 4 15:25:34 CEST 1999


Liebe Frau Koczian,

> >#99b
> >  % Code fuer 1. Primaerschluessel
> >#+#
> >
> >#99a
> >  % Code fuer 2. Primaerschluessel
> >#+#
> >
> Das ist eine hoechst raffinierte Loesung! Der Abschnitt #-* sorgt dafuer,
> dass in jedem Fall die _beiden_ als Primaerschluessel moeglichen Eintraege
> gebildet werden, richtig?

ja. Moeglicherweise geht es aber noch trickreicher, indem
Sie beide Schluessel, nur in unterschiedlicher Reihenfolge,
bei #-@ konstruieren (zwei Sprungmarken brauchen Sie allerdings
auch in diesem Fall :-)

Ausserdem macht es das Leben einfacher (vgl. Mail an Herrn
Matalla), wenn man immer nur im "Standardfall" (d.i.
Variable nicht gesetzt) indexiert:
Bedenken Sie die Implikationen bei zweistufiger Indexierung.
Hier muessen natuerlich durch das erste ak-Statement alle
benoetigten Ersetzungsschluessel produziert werden.

"Globale" Initialisierungen / Loeschungen von Anwendervariablen
betreffen ja vornehmlich den zweiten Indexlauf und duerfen daher 
nicht (nur) im ersten Abschnitt (hinter #99b) vorkommen. Bei 
obiger Loesung sollten sie
auch nicht im zweiten Abschnitt (hinter #99a) stehen, weil
- bei #99b evtl. wieder etwas geloescht wird, was bei
  "Kreuzung" erst spaeter ist
- der Code meistens recht lang ist und daher die Spruenge
  zu #99b / #99a zuviel Zeit verbrauchen wuerden.

Als Konsequenz sollte man einen dritten ak-Sprung erst
mit solchen Initialisierungen betrauen (Die Standard-
Parameter tun dies ja bei #-0 fuer die Kurztitelberechnung,
was ja ebenfalls mit ak=zz+... angesprungen wird)

viele Gruesse
Thomas Berger





Mehr Informationen über die Mailingliste Allegro