[Allegro] Umgang mit Mehrfachkennung (Mehrfachkategorien)
Thomas Berger
ThB at Gymel.com
Di Jul 2 10:06:51 CEST 2013
Lieber Herr Eversberg,
> Dann lösen wir's doch einfach so, daß wir das Nächstliegende
> tun, und zwar die Konstruktion ändern auf
>
> var _36~ statt var _36:
bzw. #3~~ und #36~ statt #3:: und #36:
Birgt das Verwirrungspotential, weil ~schreibend~ die Bedeutung
"naechste freie" ist:
#36~ abc
bzw. var '#36~ abc'\insert
und ~lesend~ die Bedeutung "letzte belegte"
if #36~
bzw. var #36~
Andererseits brauche ich die "naechste freie" nie auslesen, weil
die ja per definitionem leer ist.
Die cstring-Syntax bietet mit #k.. oder #kk. auch den nuetzlichen
Zugriff auf das erste belegte Feld der Gruppe "k" bzw. "kk",
und mit k1/2/3/4 bzw. k_1/2/3/4 eine Iteratorfunktionalitaet
ueber den ganzen Datensatz.
Ich habe aber schon einmal (bei einem Update etwa alle vorhandenen
#36er loeschen, wenn im hereinkommenden Satz etwas bestimmtes gegeben
ist) eine Iteration ueber eine Kategoriegruppe benoetigt.
Die ernsthafte Frage ist daher, ob "letztes Feld" als Ergaenzung
zu "erstes Feld" (dessen Nutzen ist unbestritten) wirklich
nuetzlich ist oder ob nicht eher "naechstes Feld" (nach voran-
gegangenem #... #k.. oder #kk.) einen groesseren Nutzen haette.
Und ob man die Sytnax k1 / k_1 etc. wirklich benoetigt, wenn man
auch das Konstrukt #... erlauben wuerde.
Und ganz anders gedacht: Mit der iV habe ich viele Moeglichkeiten,
man koennte z.B. ein allgemeines regexp-basierendes "filter"-
Kommando einfuehren:
srx operiert auf der iV (typischerweise habe ich vorher mit
var kn den gesamten Datensatz da hineingehievt) und liefert
als Resultat ja oder nein.
"filter" wuerde diejenigen Kategorien des aktuellen Satzes in der
iV auflisten, die dem Suchbegriff entsprechen, wie ueblich
durch Newline oder "¶" getrennt (weiss jetzt nicht was ueblicher
ist).
filter "#36"
(filter "\n#36" ?)
wuerde mir alle #36er inklusive Feldnummern in Datensatzreihenfolge
in die iV packen und ich koennte anschliessend mit
var (T"¶")
auf die letzte davon zugreifen (auslesen, manipulieren, mit "insert"
zurueck in den Satz speichern).
> dann gibt's keinen Konflikt mehr. Denn auch mit PRESTO kriegt man Tilde
> nicht als Folgezeichen eingegeben. Nun ja, historische Altdaten mit
> just diesem Folgezeichen wird's wohl doch noch ohne Zahl geben, aber
> mit : eben auch - der Fluch der frühen Tat...
Ich erinnere mich dunkel, dass es seinerzeit vergleichbaren
Aerger gab: "~" war ein legales Folgezeichen, dann wurde
(wohl wegen a99) "~" als Steuerzeichen dazuerfunden. Das
groesste Problem war allerdings, dass eine Zeitlang die
schreibenden allegro-Module (presto, import, update, avanti-w)
einen unterschiedlichen Satz von "bekannten Steuerzeichen"
hatten, die bei #kk~ auszulassen waren (da gibt es "$" oder
"▼" wegen Unterfeldern in a99-Syntax, oder "ú" und einige
Varianten davon, weil Import da etwas altes, aehnliches hatte,
dann die Zeichen 254(?) und 255, weil die nicht funktionieren
bzw. in PRESTO nicht anzeigbar waren, irgendwelche Zeichen im
140er-Bereich, die in RTF unabhaengig vom Font Listensteuer-
zeichen mit festem Aussehen sind oder waren, 127 wg.
Steuerzeichenfunktion, "{", "\", "}" wg. RTF-Problemen,
"_" wg. v14-Verwechslungsgefahr und a99-cstring-syntax
und vermutlich einige mehr (etwa "?") : Gibt es irgendwo eine zusammenfassende
Liste aller irgendwann illegal gewordenen Fortsetzungszeichen?
> Die unzähligen FLEXe, in denen überall var _nn: auftritt,
> kriegen wir mit einem eigens dafür geschriebenen FLEX dann
> leicht geändert.
>
> B.E.
>
>
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sunny5.biblio.etc.tu-bs.de/mailman/listinfo/allegro
>
Mehr Informationen über die Mailingliste Allegro