AW: [Allegro] Export mit Feldbezeichnungen
Thomas Fischer
fischer at mail.sub.uni-goettingen.de
Do Jun 1 10:31:07 CEST 2006
Lieber Herr Allers,
schönen Dank für die Hinweise.
Hier noch ein paar Nachbemerkungen.
> Was #L macht, steht am Ende von 10.2.6.1.
>
> Daß zwischen die in der CFG definierten Feldbezeichnung und dem
> Kategorieinhalt ein "Doppelpunkt + ASCII-20" geschoben wird, das steht
> dort nicht, und es steht - glaube ich - auch anderswo nicht.
Das sollte dann vielleicht an dieser Stelle in die Dokumentation eingefügt werden.
> > Das mit der 20 ist vielleicht nicht leicht herauszufinden.
>
> Doch, für den, der sich die Ergebnisdatei des Exportes mit einem
> geeigneten Editor (ich verschweige hier mal den Namen meines Asbach-
> Uralt-Editors) ansieht, ist sofort zu sehen, daß hinter dem
> Doppelpunkt das Zeichen ASCII-20 steht.- Der flexiblen Länge der in
> der CFG definierten Feldbezeichnung wegen ist es klar, daß zwischen
> Feldbezeichnung und Feldinhalt ein eindeutiger Separator stehen muß.
Das sehe ich auch so - mein High-Tech-Editor zeigt mir das Zeihen auch.
Aber vielleicht haben nicht alle einen Editor, der ihnen zu einem Zeichen die ASCII-Nummer liefert? Und wenn es dort steht ist auch klar, dass es so ist und man sich darauf verlassen kann.
> > Und sind der Doppelpunkt und ASCII 20 fest eingebaut?
>
> Ich glaube schon.
Das finde ich eigentlich etwas unsinnig. Das Trennzeichen muss sein, aber warum der Doppelpunkt? Wenn man den will, kann man ihn ja (z.B. durch p ':') erzeugen, los wird man ihn aber nur mit globaler Ersetzung, was wohl langsamer und aufwändiger ist.
> > (Ich möchte den Mechanismus der Kopfbefehle benutzen, um
> Kategorien aufzuspalten.)
>
> Was hat die letztgenannte Aufgabe mit dem hier angesprochenen Kontext
> zu tun?
Soweit ich sehe, nichts, das ist nur eine Bemerkung zu den Randbedingungen. Aus mir unverständlichen Gründen funktionieren Kopfbefehle nicht in Anzeigeparametern, und ich wollte nicht riskieren, dass mir im Nachhinein jemand sagt, dass mein Problem keines war weil das unter diesen Bedingungen sowieso alles anders wäre.
> > Die Idee ist, die Feldbezeichnung mit Lxy in die Variable xy zu
> > speichern und zur Ausgabe zu benutzen. Dabei fällt auf:
>
> > a) Lxy funktioniert nur, wenn die Kategorienummer nicht
> angezeigt wird, also bei einer dreistelligen Kategorie
> > ks=4
> > oder
> > #t{s4}
> > gesetzt wird,
>
> Stimmt, das war mir auch neu.
Sollte auch bei der Beschreibung von Lxy in die Dokumentation geschrieben werden, wenn es nirgendwo steht.
> > ansonsten ist #uxy eine leeres Feld, das aber angezeigt wird (ich
> > dachte, so etwas gäbe es gar nicht bei Allegro).
>
> Ja, das sollte es eigentlich nicht geben. Denn das könnte Ärger
> geben, wenn man sich bei klassischer Parametrierung oder Flex-
> Programmierung drauf verläßt, daß eine Anwendervariable, die leer
> ist, auch nicht existiert.
Ist wahrscheinlich ein allgemeines Phänomen, das damit zu tun hat, wann eine Variable wie bewertet wird: Es scheint so zu sein, dass eine Variable zunächst aufgerufen und danach die Anfangssetzung darauf angewandt wird. Wenn in der (abstrakten) Variablen nur genau "#uxy" steht, so ist sie einerseits existent und andererseits (bei ks=4) leer.
> > ...
> Nein, Sie bekommen dieses Ergebnis auch mit
>
> #uxy 0 #zz 0
> #u1
Das funktioniert!
Ich dachte mir gleich, dass es besser gehen muss! Schönen Dank!
Aber was ist das eigentlich für ein Befehl?
In dem Onlinehandbuch steht als Syntax:
Kxx[f] [BS] [MB] [#kt1 z1 #kt2 z2 #kt3 z3 ... #ktn zn]
Wie passt die 0 da hinein?
Und umgekehrt: Warum wird bei
#uxy #zz 0
#u1
das #u1 nicht ausgegeben?
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro