[Allegro] find mit acon-job

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Jun 22 16:14:28 CEST 2015


Am 22.06.2015 15:38, schrieb Fischer, Thomas:
 >
 > ich muss mich mal wieder mit einem find-job befassen. Aktuell habe
 > ich vor allem das Problem, wie ich aus verschiedenen Find-Befehlen
 > eine Ergebnismenge zusammenbaue. Gibt es dafür eine (einfache?)
 > Methode? Ein wiederholtes "Find" lieferte bei meinen Versuchen keine
 > zusätzlichen Treffer zur aktuellen Ergebnismenge, und die Verkettung
 > der Suchbefehle mit ' OR ' geht nur mit bis zu 32 Begriffen.
 >

Nein, leider kann ich da auf die Schnelle keine Abhilfe bieten.
Zuerst müßte ich rausfinden, ob und wo denn die Zahl 32 festgelegt ist,
und wie man sie erhöhen könnte. Der Suchbefehl wird zunächst in eine
Struktur mit "reverse Polish notation" verwandelt, die dann eins nach 
dem andern abgearbeitet wird. Jeder elementare Suchbefehl erzeugt eine
neue Erg.Menge, die dann mit dem Resultat der vorherigen verrechnet
wird. Bei verschachtelter Befehlsstruktur wird ein Stack angelegt,
dessen Tiefe von der Schachtelungstiefe der Klammerungen abhängt,
aber nicht auf 32 festgelegt ist. Jedoch besteht dieser Stack aus
Ergebnismengen! Die können ja schon mal je für sich recht groß
sein. Ist das abschätzbar? Sind das evtl. insges. mehr als 256000?
acon in V35.6 wird an der Stelle, wie a99, auf 4 Mio aufgebohrt.
Der Befehlsstring in RPN ist womöglich zu eng begrenzt, das muß ich
noch eruieren - das ist ein zu sparsam kommentierter Code, der
vor sehr langer Zeit aus Fremdcode abgeleitet wurde.

Eine FLEX-Befehlszeile kann bis 64000 Byte lang sein, da kann die
Begrenzung nicht mit zusammenhängen.

Und Sie können die Aufgabe nicht mit mehreren disjunkten Ergebnismengen
sukzessive abhandeln?

B.E.



Mehr Informationen über die Mailingliste Allegro