M-Befehl: Anwendung auf mehrere Kategorien mit ++

Thomas Berger ThB.com at t-online.de
Fr Apr 30 12:45:17 CEST 1999


Sibylle Koczian wrote:
> 
> Liebe Liste,
> 
> ich moechte eine Reihe von aufeinanderfolgenden Kategorien loeschen und
> habe es versucht mit dem Befehl
> 
> #97. ++ I3,  e3 M
> 
> (Kategorie #97 soll stehenbleiben, #97f fuer alle anderen f soll
> verschwinden).
> 
> Ergebnis: Kategorien #974, #976, #978 bleiben stehen (bei #972 kann ich es
> nicht feststellen, die bekommt anschliessend einen neuen Inhalt). Bei einer
> Wiederholung des Befehls verschwindet noch #976. Was hat es damit auf sich?

Die ++-Konstruktion geraet durcheinander (das gaelte auch,
wenn Sie die Aktion in einen Unterprogrammaufruf verlagern).
Genauer: Durch den Wegfall einer Kategorie schieben sich
die Wiederholungen zusammen, die naechste ist die uebernaechste
(Analog: Aufnahmen aus Ergebnismenge wegnehmen und vorwaerts
in Ergebnismenge gehen: Ueberspringt auch immer eins)

Einzige mir bekannte saubere Abhilfe ist, mittels ++-Konstruktion
die zu loeschenden Kategorienummern in eine Anwendervariable
zu legen und per expliziter Schleife hinterher mittels der
Anwendervariable die "M"-Befehle durchfuehren.

Unsauber habe ich es aber auch schon so gemacht: Die
Sequenz etwa dreimal hintereinander ausgefuehrt:
Anfang: 1 2 3 4 5 6 7 8
Nach 1:   2   4   6   8
Nach 2:       4       8
Nach 3:               8

d.h. n Wiederholungen nehmen bis 2^n -1 Folgebuchstaben weg.

Am Rande: Was Sie vorhaben, funktioniert sowieso nicht:
Sobald #97 ohne Folgebuchstaben belegt ist, bricht die
ganze ++-Schleife ab (d.h. es ist nicht so, dass #97
einfach uebersprungen wird), in diesem speziellen Fall 
wird also keine der fuer Sie interessanten Kategorien 
bearbeitet.

Schoenes Wochenende
Thomas Berger





Mehr Informationen über die Mailingliste Allegro