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