[Allegro] kleine erkenntnisse ...

Thomas Berger ThB at Gymel.com
Fr Aug 21 12:36:09 CEST 2015


Am 21.08.2015 um 11:31 schrieb Bernhard Eversberg:
> Am 21.08.2015 um 11:22 schrieb Thomas Berger:
>> Am 21.08.2015 um 09:52 schrieb Bernhard Eversberg:
>> Was aber tun? Der Steuercode "---" ist nicht, wie beim qrix-Befehl,
>> modifizierbar. Was der Entwickler nicht vorausahnte, ist das Auftreten
>> von "---" am Ende eines Primärschlüssels. Falls kein anderer Vorschlag
>> kommt, müssen wir uns da nochmal drüber 'n Kopf machen.
>> Einfach abschaffen, die Angelegenheit ist ohnehin kaum brauchbar.
> Später dann:
> 
>> Vielleicht kreieren Sie  einfach
>> f2nd, das eine saubere von-bis-Suche implementiert, d.h.
>> ...
> 
> Beides "einfach". Aber was denn nun? Ermitteln, welches von beiden
> einfacher ist
> und das dann machen? Das erstere scheint noch "sauberer" zu sein als
> das zweite, also besser das?

Die einzigen Anwendungen hierfuer sind im Bereich der Alf- und
Order-Flexe

a-mahnrg.flx:var "|; MD00000000---MD" #dts(0,8) "zz"

nel.flx:var "ppn D" #uU2 "---D30000000"

o-lief.flx:if #uoT ask Datum JJJJMMTT oder JJJJMMTT---JJJJMMTT?
(ganz schoen gruselig, zu welchen Verrenkungen Anwender hier
aufgefordert werden, zumal der Begriff dann doch noch aufbereitet
wird:)

o-lief.flx:if #uoD var "|: _L " #uoL(e"|") "? and |; s " #uoT " "
#uoD(e"---") "---s " #uoT " " #uoD(b"---")

z-mahn.flx:var "|: ZM2000---ZM" $ze


Das sind wegen des Rueckgriffs auf echte Register und die
implementations-abhaengigen Praefixe Stellen, die zu den wenigen
gehoeren, die Portierungsaufwand haben.

Es ist hier im Beispiel frei waehlbarer Datumsbereiche schon
schick, eine von-bis-Suche zur Verfuegung zu haben, insbesondere
wo man nicht wie in der Exportsprache mit vorangestelltem "<" oder
">" eine gewisse Unschaerfe einstellen kann: Anders als beim
echten "find" brauche ich nicht davon ausgehen, dass zum
Startwert ein Schluessel existiert. Das von-bis-find ist also
mehr ein von-bis-qrix mit automatischem Einsammeln als ein find...
(leider hat auch das von-bis-qrix die fraglichen Designprobleme)

Unklar ist, ob man sich ein Durchlaufen der Ergebnismenge in
Schluesselreihenfolge wuenscht, analog Family: qrix f4
(warum nicht fuer avanti?) mit anschliessendem read set, oder
aber ein leicht zu implementierendes qrix f<nochfrei>, das
die Satznummern direkt in die iV laedt und mit anschliessendem
"find or #..." waeren eine einfache Emulation des von-bis-find.

Die Syntaxprobleme bekaeme man vielleicht mit "Impfung" in den
Griff:

qrix n
setzt ja die Anzahl der auszugebenden Zeilen

ein hypothetisches
qrix e
koennte einen Endebegriff (etwa analog qrix - nur fuer den
nachfolgenden Befehl) hinterlegen:

ein nachfolgendes qrix stellt nun fest, dass fuer den Endebegriff
etwas hinterlegt ist und ermittelt dann zunaechst wie gehabt
aus iV oder Argument das echte oder symbolische Register und
expandiert das.
Das wird nun mit dem Endebegriff kombiniert und (analog qrix n 1)
eine Zeile gelesen: Das ist dann die reale Indexform fuer den
ersten nicht mehr zu beruecksichtigenden Schluessel, die wird als
Vergleichswert hinterlegt (beginnt der Endebegriff mit "_" kann
man sich das Nachschlagen natuerlich sparen).

Dann erfolgt die Ermittlung der Schluessel fuer den eigentlichen
qrix-Befehl, die werden jeweils (wie gehabt denke ich) gegen den
Vergleichswert getestet, um die Endebedingung zu ergeben.
[ist bei trunkierten Suchbegriffen etwas zu beachten?]

So etwas aehnliches muesste eigentlich bereits ablaufen, denn
qrix ISB 999
rasselt ja auch nicht ueber das Ende des "ISB"-Abschnittes von
Register 9 hinaus...

Zu klaeren waere noch das Verhaeltnis von von-bis-Suche und qrix n:
Soll von-bis-Suche die gesetzte Zeilenzahl ausser Kraft setzen oder
sollen beide simultan gelten, also maximal n Zeilen im Bereich
von-bis? Dann muesste "qrix n 0" erlaubt werden, wenn man wirklich
alles will.

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro