[Tustep-Liste] iteratives Ersetzen innerhalb eines Bereiches
Wolfram Brunschön
brunschoen at bbaw.de
Do Jun 1 19:51:06 CEST 2006
Lieber Herr Trauth,
wie immer ganz herzlichen Dank! Es läuft prima.
Darf ich Sie und die TUSTEP-Gemeinde gleich mit
einem neuen Problemchen belästigen?
Ich möchte überprüfen, ob in einem Satz die
zwischen !s und :: stehende Zahl zwei- bzw.
mehrfach hintereinander vorkommt und die
doppelten Vorkommen durch nichts ersetzen.
[reg] Test !s5::%1¿ !s5::%2¿ !s5::%3¿ !s5¡¿ !s6¡¿ !s7¡¿ !s8¡¿ !s9¡¿
herauskommen sollte also:
[reg] Test !s5::%1¿ %2¿ %3¿ !s5¡¿ !s6¡¿ !s7¡¿ !s8¡¿ !s9¡¿
Dann wäre es schön zu überprüfen, ob die zwischen
!s und :: stehende Zahl identisch mit der
darauffolgenden, zwischen !s und ¡¿ stehenden
Zahl ist (falls eine solche denn folgt) und letztere vor die erste zu stellen.
Etwas dümmeres als das folgende ist mir für den
Anfang nicht eingefallen, es hapert mal wieder am wesentlichen Verständnis.
aa |[reg]|
al 1 |!s|
el 1 |::|
liv 1 i1 i2
rr 1 if (i2.eq.i1) i2 = i1;
eiv 1 i1
Vielen Dank im voraus und liebe Grüße
Wolfram Brunschön.
At 10:19 01.06.2006, you wrote:
>Diskussionsforum Tustep-Liste
>Weitere Informationen: www.itug.de
>------------------------------------------------------------
>
>
>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
>---------------------------------------------------------------
>
>------------------------------------------------------------
>Tustep-Liste at itug.de
>https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
Mehr Informationen über die Mailingliste Tustep-Liste