[Tustep-Liste] page_nr um mehr als 1 erh�hen/erniedrigen

Kuno Sch�lkle Schaelkle at zdv.uni-tuebingen.de
Mi Okt 31 15:04:04 CET 2007


Lieber Herr Kollatz,

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
y,aa=set_ins,cur_ri,skp_beg,cur_dn,ins_line,"<Lag>A ",page_nr,"</Lag>
Es soll die Seitennummer an einer bestimmten Stelle eintragen.
1, A 1
2, A 2
usw.
Ok.

Jetzt sind wir aber in Satz 50 (und Feld B) und da soll es wieder bei
eins losgehen.

Ich suche also etwas wie page_nr - 49,
dann würde Satz 50 die nr. 1 erhalten
51, B 2
52, B 3
usw.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

auf Anhieb faellt mir nichts ein, wie man das Problem
mit dem Editor loesen koennte. Falls keine Loesung
mehr kommt, hier ein Vorschlag:

Mit dem Editor die Seitennummern einsetzen, also
z.B. A 1, A 2, ... B 50, B 51, B 52, ...
Danach mit folgendem Makro die Seitennummern aendern:

ACCESS d: UPDATE/RECORDS "{datei}" s.z/u, text

SET alt = "???"

LOOP/999999
   READ/NEXT/EXIT d
   IF (text.SW."<Lag>")  THEN
      SET neu = EXTRACT (text, 6, ": :")
      IF (neu.NE.alt)   SET korr = s - 1, alt = neu
      SET zahl = s - korr
      SET text = SUBSTITUTE (text, ":<>>/:", 0, 0, zahl)
      WRITE/UPDATE d
   ENDIF
ENDLOOP

ENDACCESS d

Es interessieren nur Zeilen, die mit "<Lag>" beginnen.
Neuen Feldnamen bestimmen und in "neu" speichern.
Wenn der neue Feldname nicht mit dem alten uebereinstimmt:
     Wert berechnen, mit der die Seitenzahlen korrigiert werden muessen.
     Neuen Feldname als alten merken.
Zahl bestimmen, die eingesetzt werden muss, und in "zahl" speichern.
Die Zahl im Text durch die neue, berechnete Zahl ersetzen.
Geaenderten Text in die Datei schreiben.

Herzliche Gruesse
Kuno Schaelkle



Mehr Informationen über die Mailingliste Tustep-Liste