[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