Avanti: write lastnum

Bernhard Eversberg ev at buch.biblio.etc.tu-bs.de
Mi Jul 21 08:52:37 CEST 2004


On 20 Jul 04, at 17:18, Harald Schmid wrote:

> ich habe gerade festgestellt, daß Avanti sich bei folgendem Befehl recht
> merkwürdig verhält:
> 
> find # 999999999
> write lastnum
> 
> Avanti soll nach der internen Nummer 999999999 (die es sicher nicht gibt, so
> groß ist unsere DB nicht) und die Anzahl der gefundenen Treffer ausgeben.
> Man würde erwarten, daß write lastnum 0 ausgibt, ich erhalte jedoch, egal ob
> Avanti was findet oder nicht, immer eine 1.
> 
Langerfristig (gerade erst haben wir eine neue Version bereitgestellt!)
sollte hier wohl etwas geschehen. Denn:
avanti macht bei dem Befehl  find # ...  nichts anderes, als die hinter # 
aufgeführten Nummern der momentan bestehenden (evtl. leeren) Erg.Liste hinten 
anzufügen. Existenz der Sätze wird dabei nicht überprüft! Das klingt natuerlich 
nicht gut. Jedoch wird man "find #..." normalerweise nur einsetzen, wenn man
vorher bereits einige Nummern von Sätzen gesammelt hat (evtl. nur eine), die man 
nun der vorhandenen Erg.menge zuschlagen will. In diesem Fall würde das Problem 
nicht auffallen - es ist ja auch bisher nicht aufgefallen.

Bleibt die Frage: wie macht man in avanti die Erg.Menge leer?
Mit "close res" (wie in a99) geht es nicht - ist nicht eingebaut.
Jeder normale find-Befehl erzeugt eine neue Erg.Menge, man braucht die 
Leerung also höchstens dann, wenn in einem Job wirklich mit find # ...
eine ganz neue anzulegen ist. 
Erster Trick: einen find-Befehl geben, der garantiert nichts ergibt
Zweiter Trick: (undokumentiert)

set maxres 200000

Dieser Befehl setzt die maximale Erg.Mengengröße auf 200000 (mehr geht nicht) 
UND leert die Ergebnisliste.
Wir tragen das in die Dateien  xset.rtf  und  xclose.rtf  ein.

MfG B.E.


Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro