[Tustep-Liste] Editor-Makro, das eine im Text stehende Zahl um 1 erhoeht

Kuno Sch�lkle Schaelkle at zdv.uni-tuebingen.de
Mi Apr 19 11:28:22 CEST 2006


Hallo,

es erreichte mich eine Anfrage mit folgendem Problem:

Mit einem Editor-Makro soll eine im Text stehende Zahl um 1
erhoeht werden. Die Zahl wird maximal 999 und soll immer
dreistellig mit fuehrenden Nullen im Text stehen.
Beim Aufruf des Makros steht der Cursor schon in der Zahl.

Loesungsvorschlag:

y,h=
RD_NUM,
   lesen der Zahl
INC_NUM,
   gelesene Zahl (intern) um 1 erhoehen
MRK_STR:"|<>>/|",
   beliebig viele Ziffern unter, links und rechts vom Cursors markieren
MRK_DEL_DEL,
   markierte Ziffern im Text loeschen
WR_NUM,
   um 1 erhoehte Zahl in den Text einfuegen,
   Cursor steht nun hinter der Zahl, die Zahl hat keine fuehrenden Nullen
CUR_LE,
   Cursor nach links, Cursor steht nun auf der letzten Ziffer
MRK_STR:"|<>>/|",
   beliebig viele Ziffern unter, links und rechts vom Cursors markieren
MRK_DEL_REP,
   markierte Ziffern in den Zwischenpuffer holen, Zahl im Text loeschen
X_MRK:"|><3<>>/|>=01|><2>/|0>=01|><1>/|00>=01|",
   im Zwischepuffer austauschen:
   Zahl aus drei und mehr Ziffern bleibt unveraendert,
   Zahl aus zwei Ziffern wird vorne durch eine Null ergaenzt,
   Zahl aus einer Ziffern wird vorne durch zwei Nullen ergaenzt.
MRK_INS
   Inhalt des Zwischenpuffer (d.h. die evtl. durch Nullen
   ergaenzte Zahl) wieder in den Text einfuegen.

Mit freundlichen Gruessen
Kuno Schaelkle



Mehr Informationen über die Mailingliste Tustep-Liste