[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