Diffiziles Indexierungsproblem

Heinrich Allers allers at t-online.de
Mo Aug 2 22:27:47 CEST 2004


Hallo Herr Schönberger:

      Sie stellen fest:
  
> Ihre Mini-Indexparameterdatei gehoert in die Qualitaetsklasse C,
> fuerchte ich ;-).

Damit treffen Sie mich natürlich zutiefst. :-((

> Ich pflichte Herrn Berger bei, dass eine Verzweigung
> von einer Benutzervariablen, 
> 
> ak=uti" "+E
> 
> die Sie waehrend der Abarbeitung loeschen, 
> 
> #uti dti e0
> 
> bestenfalls zu undefinierbaren Ergebnissen fuehren kann. 

Das stimmt nicht; der Beweis dafür, daß es bestenfalls nicht nur zu 
undefinierbaren, sondern durchaus zu brauchbaren Ergebnissen führen 
kann, ist hier:

http://www.allers.privat.t-online.de/quark/quark4.lzh

Packt man das Archiv quark4.lzh in ein beliebiges Verzeichnis c:\xyz 
hinein aus und ruft auf mit prest.bat, so sieht man in Register 1, daß 
die drei in der Datenbank vorhandenen Kategorien #26:

#26 Säuberungen
#26 Die Sonette an Orpheus
#26 Das besondere Leben des Hilletje Jans

korrekt und vollständig verstichwortet werden.

Ich weiß, daß es aufgrund dieser rein empirischen Beweisführung 
unzulässig wäre, meiner Parametrierung die Qualitätsklasse A (absolut 
korrekt) zuzuschreiben, glaube aber zumindest die Qualitätsklasse B 
(über weite Strecken hin und unter besonderen Bedingungen 
funktionierend) verdient zu haben.  :-))

> Warum landet bei der Indexierung 'p00007' im Index 1?
> Nun, beim ersten Anspringen von 
> 
> !u1 u p"|1"
> 
> wird beim diskutierten Datensatz gar kein Export erzeugt, 
> da das erste Wort ein Nichtordnungswort ist.

Ich unterstelle der Programmlogik, daß die Prüfung, ob es sich um ein 
Nichtordungswort (oder Stoppwort) handelt, schon beim ak-Befehl selbst 
und nicht erst bei Erreichen des Sprungziels (hier #-E) erfolgt.

Aber sei dem wie dem sei (die Entwicklungsabteilung könnte unter 
Umständen ein klärendes Wort sprechen): meine mit quark4.lzh 
transportierte Demonstration beweist, daß _bestenfalls_ die Sache ohne 
die unvorhersehbaren Folgen abläuft, die im folgenden an die Wand 
gemalt werden: 

> Dann wird uti geloescht. 
> Und jetzt versucht der Kopfbefehl
> 
> ak=uti" "+E
> 
> die restlichen Spruenge zu erzeugen, aber der Speicher, auf 
> den er zugreift, ist nicht mehr definiert. Sie kriegen also
> nur noch "Garbage" und sollten froh sein, dass nicht noch
> viel Schlimmeres passiert.

###

> Dass die Ausgabe nichts mit dem nachfolgenden
> 
> ak=9V+V
> 
> zu tun hat, koennen Sie daran sehen, dass eine "geordnete"
> Loeschanweisung fuer uti das Problem beseitigt:
> 
> --- Beginn GOE.API -------------------------------------------
> 
>   Die folgenden 2 Zeilen gehören zusammen:
> ak=26+o 
> ak=uti" "+E
> ak=uti+F
> 
> ak=9V+V
> 
> #+#
...
...
...
> #-F   ordentliche Loeschung *nach* der Abarbeitung
> #uti dti e0
> #+#
...
...
...
> --- Ende GOE.API -------------------------------------------

Widerspruch! Es ist umgehkehrt:

Daß die Ausgabe sehr viel mit dem nachfolgenden

ak=9V+V

zu tun hat, kann man an der in quark4.lzh enthaltenen Demonstration 
sehen: dort ist einzig die Sprunganweisung
ak=9V+V
desaktiviert und der Rest unverändert gelassen worden, und alles 
funktioniert wie am Schnürchen und wie erwartet!

> Es gibt natuerlich noch elegantere Methoden, um ein
> "vagabundierendes" uti am Ende/Anfang der Abarbeitung zu
> verhindern. Warum loeschen Sie es nicht unter #-@ ?

Lieber Kollege Schönberger und liebe andere Listenleser, die ich 
möglicherweise zu nerven beginne: es gibt 2 Gründe, weswegen ich derart 
hartnäckig in dieser Angelegenheit bin: 

Erstens: Es handelt sich nicht um eine Anwendung hier vor Ort, um die 
es geht, sondern um 60 in der Welt verteilte. Im ersteren Fall würde 
ich die Sache natürlich sofort so regeln, wie Sie es angedeutet haben, 
aber das dann an 60 Anwendungen in der Welt zu verteilen, das ist 
zumindest unter den Bedingungen, unter denen ich hier arbeite, ein 
riesiges Aufheben.

Zweitens: Wenn ich es jetzt so richte, wie Sie es vorschlagen, dann 
schließt nichts aus, daß ich irgendwann später wieder in die gleiche 
Falle tappe, den - in Ihren Augen - gleichen Fehler begehe. Mit anderen 
Worten, ich will wirklich nicht nur gesagt bekommen, daß ich absolut 
falsch parametriert habe, sondert auch die Begründung dafür haben. Denn 
ehe ich nicht verstanden habe, warum ich falsch parametriert habe, 
werde ich bei nächster Gelegenheit wieder so falsch parametrieren.


Mit bestem Dank für Ihre Überlegungen zu der Angelegenheit
und mit vielen Grüßen:

Heinrich Allers

-- allers at t-online.de * http://www.allers.privat.t-online.de
-- Die Türkei? In die Europäische Union aufnehmen, jetzt!
-- ¿Turquía? ¡Integrar en la Unión Europea, ahoramismo!





Mehr Informationen über die Mailingliste Allegro