[Tustep-Liste] String konvertieren - Suchen/Ersetzen

Michael Trauth trauth at uni-trier.de
Mi Mai 3 17:27:52 CEST 2006


Lieber Herr Neumann,

ohne in Konkurrenz mit der Loesung von Herrn Bausch
treten zu wollen, schicke ich meine eigene (die ganz
anders funktioniert) hinterher:

> ...
> Nachdem obiges funktioniert ist meine Liste der Brief-
> empfaenger leider noch nicht perfekt. Sie sieht so aus:
> 
> An Johann Friedrich Cotta, 16. November 1818_(Nr._57)_70
> An Johann Friedrich Cotta, 11. Januar 1829_(Nr._65)_75
> An Johann Friedrich Cotta, 3. Februar 1829_(Nr._66)_76
> An Johann Friedrich Cotta, 1. April 1829_(Nr._70)_80
> An Buchhändler Cranz, 18. Februar 1830_(Nr._75)_85
> Von Johann Gottlieb Fichte, 10. April 1806_(Nr._9)_11
> Von Johann Gottlieb Fichte, 22. Juni 1806_(Nr._12)_17
> An Johann Wolfgang Goethe, 24. November 1813_(Nr._30)_51
> Von Johann Wolfgang Goethe, Ende November 1813_(Nr._31)_53
> Von Johann Wolfgang Goethe, 3. Januar 1814_(Nr._33)_55
> ...
> sollte aber so aussehen:
> 
> Johann Friedrich Cotta
>   An, 16. November 1818_(Nr._57)_70
>   An, 11. Januar 1829_(Nr._65)_75
>   An, 3. Februar 1829_(Nr._66)_76
>   An, 1. April 1829_(Nr._70)_80
> Johann Gottlieb Fichte
>   Von, 10. April 1806_(Nr._9)_11
>   Von, 22. Juni 1806_(Nr._12)_17
> Johann Wolfgang Goethe
>   An, 24. November 1813_(Nr._30)_51
>   Von, Ende November 1813_(Nr._31)_53
>   Von, 3. Januar 1814_(Nr._33)_55
> 
> Problem ist also eigentlich:
> 1. Namen in einer Zeile suchen
> 2. Namen in die Zeile darüber schrieben
> 3. Namens im Rest der Datei löschen
> 4. Nächsten Namen suchen usw.

Probieren Sie's mal damit (mit Kommentarzeilen ;o)):

#da,zwi.1'zwi.2'zwi.3,fr=-
#ko,quelle,zwi.1,,+,*
<2s       |Von|An|
         * Texteinheit so umdrehen, dass 'An' und
         * 'Von' hinter dem Namen stehen:
xx        |<|<2 <><%, <><%|>=03 :: >=01, <=01|
*eof
#-  Für den Rest (Zusammenfassen von identischen
#-  Namen) ist ein RAufbereite zustaendig:
#ra,zwi.1,zwi.2,mo=-,lo=+,pa=*,pr=-
ssl       0
        * Zwei Textteile sollen unterschieden werden:
tt        2
        * Als Trennzeichen zwischen den Textteilen sollen
        * der folgende String interpretiert werden:
tr        | :: |
        * Die Trennzeichen sollen für den Ausdruck unter-
        * drückt (1) oder nicht unterdrückt (0) werden:
tru       1
        * Bei identischem Textteil 1 folgendes ergänzen:
tte   1   |   |
        * Vor und nach dem Textteil 1 (= Autorenname)
        * soll '$ ... {}' ergänzt werden:
vtt   1   |$ |
ntt   1   |{}|
*eof
#ko,zwi.2,zwi.3,+,+,*
za        |{}|
xxx       |{}|   |
*eof

Das Ergebnis steht in zwi.3

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