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