Diffiziles Indexierungsproblem

Thomas Berger ThB at gymel.com
Mo Aug 2 23:33:13 CEST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Allers,

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

lieber Herr Schoenberger,

weil das ein Denkfehler ist: #-@ wird unter Indexierungs-
bedingungen nicht abgearbeitet (zumindest dann nicht,
wenn die anderen Sprungmarken abgearbeitet werden)!


| 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
[schnipp]

| 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.

Hier ist vor vielen Jahren bereits einmal nachgebessert worden,
es gab eine Zeit, da musste man ganz entsetzlich aufpassen, aus
ak-Aufrufen mit Anwendervariablen, aber auch aus Unterprogramm-
Aufrufen mit Anwendervariablen nur solche Anwendervariable zu
modifizieren, deren Name im Alphabet nach den gerade "blockierten"
kam: Es war wohl nichts mit Kopien, sondern alles mit Pointern
auf den Hintergrundspeicher realisiert, wenn sich da etwas
waehrend der Verarbeitung verschob, bekam das Programm das nicht
mit.

Das scheint fuer Unterprogramme inzwischen behoben (ich weiss
es nicht, weil ich inzwischen sehr defensiv parametriere),
fuer ak-Abschnitte aber definitiv nicht, wie folgende Abwandlung
Ihrer goe.api beweist, die ebenfalls nicht korrekt ist (Indexierung
ja, F7 unter PRESTO jedoch nicht):

ak=zz+a
ak=26+o
ak=uti" "+E

ak=9V+V

#-a
#nr dti =ta
#26 Ata
#+#

#-E   Sachtitelwörter (aus #26)
!u1 u p"|1"
#uta dta e0
#+#


(Rest unveraendert)


D.h. bei #-E wird nicht mehr die "aufrufende" Anwendervariable
#uti modifiziert, sondern #uta, die im Alphabet vor #uti kommt.
#uti wird ausserdem richtig sauber geloescht (daher ist der
Effekt auch nicht so verheerend. Durch Vorbesetzung von #uta
mit Werten unterschiedlicher Laenge laesst sich der Effekt
etwas variieren)

Die Gegenprobe mit #utu statt #uta zeigt hingegen einen in jeder
Situation korrekten Index.

Fazit: Es ist wie es immer war: Waehrend aus einem ak-Statement
mit Anwendervariable
ak=uxy+E
die Anweisungen bei #-E ausgefuehrt werden, duerfen nur solche
Anwendervariable modifiziert werden, die im Alphabet nach "xy"
kommen.

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBDrMZENVh3bB0lwMRAndCAJ9HHFLvW+fTG61bsn059DdLlNtBwACfdED/
EqJ9gfPYuHpjKCW9am50wWk=
=SpEA
-----END PGP SIGNATURE-----




Mehr Informationen über die Mailingliste Allegro