[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