[Allegro] Frage zu #t{'…'} im Indexparameter; Wiederholungskategorien
Fischer, Thomas
fischer at sub.uni-goettingen.de
Mi Nov 13 14:32:09 CET 2013
Lieber Herr Eversberg,
schönen Dank für die schnelle Lösung!
> Am 12.11.2013 12:36, schrieb Fischer, Thomas:
> >
> >>> Ich hoffe, aber, dass Sie die von mir beschriebene Situation mit der
> > >> Demo-Datenbank reproduzieren können.
> >>> Ausgangspunkt ist eine Konstruktion der Form
> >>>
> >>> #udx
> >>> #ute
> >>> #t{8}
> >> > ...
> >>
> >> OK, wir machen uns drüber her...
>
> Das ist geschehen.
> Es stellte sich raus, daß Herr Fischer in den Indexparametern
> gesetzt hat:
>
> ke=8
>
> Der Wert ke ist nicht als Trennzeichen zwischen zwei Schlüsseln
> gedacht, sondern als automatisches Endezeichen für jede
> Kategoriezeile, in der keine Postfixe spezifiziert sind, das ist
> etwas ganz anderes: Wenn in den Parametern z.B. Zeilen wie
> #uxy
> stehen, wird dahinter jeweils der Code 8 gesetzt. Und das
> war der Grund für Fischers Kalamität.
Ich habe nicht herausfinden können, wann dieses ke=8 in die
Indexparameter gekommen ist, es ist jedenfalls schon sehr
lange da. Und so unauffällig, dass ich es auch schon lange
vergessen hatte...
Allerdings fällte es mir schwer, mir vorzustellen, was denn genau
passiert ist. Das ke=8 steht offensichtlich dort um zu verhindern,
dass einzelne Werte zusammengeklebt werden statt einzeln im
Register zu stehen. Offenbar wird die "8" aber meistens (?) gar
nicht angehängt, sonst hätte schon meine Ausganssituation
#udx
#ute
#t{8}
nicht funktionieren können.
> Der Wert 8 ist außerdem NICHT als allgemeines Endezeichen eines
> Schlüssels zu verstehen. Er ist NUR zu setzen innerhalb eines
> Abschnitts in den Parametern, wenn dort, etwa in einer
> Schleife, mehrere Schlüssel hintereinander produziert werden.
Genau so wurde das bei mir benutzt. Ich finde es aber auch immer
unheimlich, wenn Dinge ohne mein Zutun und/oder hinter meinem
Rücken passieren: Wann wird wie nach welchen Kriterien ein
Registereintrag beendet, wenn ich ihn nicht explizit mit "8"
abschließe?
Und was ist der Unterschied zu dem Verhalten, das ein korrekt
ausgewertetes ke=8 z.B. in einer Exportparameterdatei
bewirken würde?
Es sieht so aus, als ob ein #t{'Text'} eine vorherige Ausgabe des
Trennzeichens ke erzwingen würde; gilt das nur für Indexparameter
oder auch für andere Dateien in der Exportsprache?
> Überzählige Codes 8 an einem Schlüsselende machen nichts aus,
> aber zwischen Präfix und Text bzw. zwischen zwei Teilen eines
> Schlüssels machen sie Ärger.
Ja, aber offenbar erst, wenn noch ein #t{'x'} dazukommt. Ist das
nicht seltsam?
> Wir bauen jetzt ein, daß man den Wert ke in den Indexparametern
> überhaupt gar nicht verwenden kann.
Das hilft im konkreten Fall. Ich hätte aber gern auch Antworten auf
die obigen Fragen, um das Verhalten von Allegro besser verstehen
zu können.
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro