[Tustep-Liste] iteratives Ersetzen innerhalb eines Bereiches
Michael Trauth
trauth at uni-trier.de
Do Jun 1 10:19:31 CEST 2006
Lieber Herr Brunschoen,
zu Ihrer Frage:
> Innerhalb von Fußnoten befinden sich gem. <5s
> definierte Indexeinträge. Diese sollen nun vor
> die jeweilige Fußnote kopiert werden.
> #KO,hilf.5,hilf.6,,+,*
> <5s |&xp<><%&x{|
> axx |@f+|
> exx |@f-|
> xx |@f+<><%<5|&xf&x{>=05>=(01-04)|
> xx |@f+<5|&xf&x{>=04>=(01-03)|
> xxi 3
> *eof
> Frage:
> Warum wird nur der erste Indexeintrag innerhalb
> einer Fußnote herausgezogen? Liegt es an einer
> falschen Angabe zu xxi, oder muß eine Sprungta-
> belle erstellt werden?
Nein, es liegt an Ihrem Muster: Sie lassen nach
'@f+ plus Beliebiges plus Kommentar' suchen, und
diese Suchzeichenfolge kommt fuer das Programm,
das stur von links nach rechts sucht, auch dann,
wenn *viele* Kommentare in der Fn. drinstehen, nur
ein einziges Mal vor. Aber das Problem laesst sich
leicht loesen. Zuerst die Daten: Wenn Ihre Textdatei
so aussieht:
---------------------------------------------------
$ Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text Text @f+ Text Text &xp Name1 &x{ Text Text &xp Name2 &x{
Text Text &xp Name3 &x{ Text Text &xp Name4 &x{ Text Text Text
Text Text Text Text Text &xp Name5 &x{ Text Text &xp Name6 &x{
Text Text @f- Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text @f+ Text Text &xp Name7 &x{ Text Text &xp Name8 &x{ @f-
Text Text Text Text Text Text Text Text Text Text Text Text
----------------------------------------------------
muesste das folgende (kommentierte! ;o)) #kopiere die
gewuenschte Leistung erbringen:
----------------------------------------------------
#ko,q,z,+,+,*
* Definition der Zeichen in einer Fussnote:
<fz |<%||@f+|@f-|
* Abschnitte zusammenfassen an Hand von '$ ':
aa |$ |
* Pruefen, ob Fn. + Kommentar vorkommt:
zf+ 1 |@f+><<><[fz]&x><<><%&x{|
* Wenn ja, austauschen wie angegeben:
xx 1 |@f+><<><[fz]&x><<><%&x{|&xf&x{>=(5-10)>=(1-4)|
* Danach erneut pruefen (-> 11) usw.
spn 3
sp2 11
sl 80 80
* Ausgabesaetze unterteilen an &xf&x{ und @f+... at f-:
za |&xf&x{|@f+|
ze |@f-|
*eof
----------------------------------------------------
Die von Ihnen gewuenschte Iteration funktioniert wie
im Kommentar angegeben: Das Programm sucht zunaechst
mit zf+, ob Fn.-Beginn plus Kommentar vorkommt, dann
tauscht es aus (im Prinzip so, wie Sie es schon reali-
siert hatten), dann geht es zurueck in den Vergleich
(Sprung nach -> 11), sucht wieder mit zf+, tauscht
wieder usw., bis das Suchen nicht mehr erfolgreich
ist (dann Sprung in die Ausgabe -> 3). Das war's.
Viele Gruesse reihum von
Michael Trauth
---------------------------------------------------------------
Dr. Michael Trauth e-mail: trauth at uni-trier.de
Rechenzentrum office: Tel. 0651-201-3413
der Universitaet Fax 0651-201-3921
Universitaetsring secretary: Tel. 0651-201-3417
D-54286 Trier
---------------------------------------------------------------
Mehr Informationen über die Mailingliste Tustep-Liste