[Allegro] Vb.297 : Neuer FLEX detect.flx für "unmögliche" Ergebnismengen
Bernhard Eversberg
b-eversberg at gmx.de
Fr Jun 22 10:52:19 CEST 2018
Verlautbarung 297 zur allegro-Entwicklung 2018-06-22
-----------------------------------------
Neuer FLEX detect.flx : "Unmoegliche" Ergebnismengen bilden
-----------------------------------------------------------
Die Praxis konfrontiert den Anwender / die Anwenderin immer mal wieder
mit Aufgaben, die sich weder mit der Schnellsuche noch mit Volltext-
Suche loesen lassen. Wie zum Beispiel:
Alle Saetze, zu denen es verknuepfte Untersaetze gibt
Alle verknuepften Untersaetze
Alle verwaisten Untersaetze (ohne zugehoerigen Hauptsatz)
Alle hierarchischen Saetze
Bestellungen ohne Titel
Laengste / kuerzeste Saetze finden (nur 2 oder 3 Felder)
Dickste Buecher: Alle mit mehr als z.B. 500 Seiten
Diese Aufgaben haben gemeinsam, dass sie erstens im oben beschriebenen
Sinne nicht loesbar sind, jedoch zweitens sind die Kriterien mit der
FLEX-Sprache pruefbar. Folglich kann man je einen FLEX schreiben, der
alle Saetze nacheinander liest und jeweils das Kriterium prueft;
Wenn es erfuellt ist, dann schreibt er die interne Satznummer in
eine Datei detect.set, die am Ende als sog. "externe Ergebnismenge"
eingelesen wird.
Um nicht sechs FLEXe schreiben zu muessen, einen fuer jede dieser
Aufgaben, haben wir einen einzigen geschrieben, der auch noch
erweiterbar waere fuer weitere "unloesbare" Aufgaben. Die sechs
Aufgaben sind ja bis auf die Abpruefung des Kriteriums identisch!
Weitere Beschreibung eruebrigt sich an dieser Stelle, denn in dem
FLEX namens detect.flx ist alles genau erklaert. Man sieht auch
leicht, wie man ihn fuer weitere, eigene Aufgaben ausbauen kann:
Dazu sind alle Stellen mit "eigene Funktion" kommentiert, wo man
selber etwas einzubauen hat.
Der FLEX ist abzuholen mit X gf detect.flx
Man startet ihn so: X detect
und waehlt eine der Funktionen aus der dann erscheinenden select-Liste.
Fuer die Funktionen "Bestellungen ohne Titel" und "Laengste/kuerzeste"
gibt es schon eigene FLEXe: o-bots.flx und lk.flx. Diese werden aus
dem neuen Flex heraus aufgerufen mit der Funktion "exec ...".
Mehr Informationen über die Mailingliste Allegro