[Allegro] Variablen-Lebensdauer / -gueltigketi beim Index-Lauf

Thomas Berger ThB at Gymel.com
Mo Dez 5 13:44:50 CET 2011


Lieber Herr Eger, liebe Liste,

> Unklar ist mir: werden bei - at 1 alle ak-Zeilen abgearbeitet, bis sich 
> der erste Schlüssel ergibt oder wird nur eine bestimmte Sprungmarke
> angenommen? 

Ungefaehr ersteres: Es werden solange die Sprungmarken abgearbeitet,
bis mindestens ein Schluessel gebildet wurde, es werden aber alle bei
dieser Marke gebildeten Schluesseln in den Index gesetzt.

Bei - at 2 hingegen wird die erste Sprungmarke stur uebersprungen
(also nicht alles abgearbeitet und der erste gebildete unterdrueckt).
Insofern kann es zu Ueberschneidungen kommen, seit vielen Jahren werden
aber identische Schluessel in einen bestehenden Index ohne graessliche
Fehlermeldungen einsortiert.

Die Sprungmarke #-@ ist schon laengst nicht mehr (fuer den Index)
verdrahtet, PRESTO hat aber gewisse Navigationsfunktionen daran
aufgehaengt. Ich nutz(t)e das gerne, indem ich einen fuer diese
Navigation optimierten Abschnitt in den Indexparametern mitfuehre,
der aber bewusst nicht durch ak-Zeilen angesteuert wird (die benoetigten
Schluessel werden anderswo gebildet, der Abschnitt #-@ kann dann
gemaechlich Alternativen testen und irgendetwas navigatorisch
passendes ausspucken)


> Weiter unklar:
> 
> Wird bei Index -fi auch der Abschnitt #-0 durchlaufen? (dieser ist ja 
> explizit für die Kurztitelerstellung vorgesehen)
> Wenn nicht, dann sind natürlich dort stehende Variablensetzungen oder
> -Löschungen unwirksam...

Bei Index -fi wird alles gemacht, wie bei Index -f7, aber bei den
Spezialfunktionen -fs/-fx (Kurztitelliste / Restriktionentabelle isoliert
wiederherstellen) muss man darauf achten: In cat.api erfolgen die Haupt-
Initialisierungen nun gerade bei #-0, aber bei #-/ definitiv nicht, daher
Vorsicht, wenn man dort auf ein aufwendig vorbereitetes Erscheinungsjahr in
einer Anwendervariablen zurueckgreifen will


> Wäre es sinnvoll, die erste ak-Zeile extra für alle Variablen-Setzungen
> zu reservieren (z.B. ak=zz+? und dort keine Schlüssel zu erzeugen), oder
> kollidiert das mit irgendwelchen anderen Mechanismen?

Die erste: Das waere fatal, weil es dann nicht zum Zuge kommt, wenn man
es braucht.

Wichtig sind vor allem Variablen-Loeschungen, am besten alles was vorkommt
im Rahmen einer ak=zz+... -Konstruktion loeschen, die darf aber gerade
nicht die erste sein, sollte aber moeglichst vor allen anderen aufgerufen
waeren, optimal also, wenn es die zweite ist...

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro