[Tustep-Liste] Infos aus dem Text als Attribut

gasperlin at gasperlin.de gasperlin at gasperlin.de
Mo Aug 10 23:12:34 CEST 2009


Liebe Frau Jockers,

wenn die Daten so aussehen, wie Sie geschrieben haben, sollte folgendes Script
tun, was Sie wollen. 
In der ersten Schleife wird eine Datenportion (<li>...</li>) gelesen und die
Variable txt am Schrägstrich (falls vorhanden) in Teilzeichenfolgen
aufgesplittet.
In der geschachtelten Schleife wird aus jeder Teilzeichenfolge die Quellenangabe
extrahiert und als Attribut in das Starttag <ha> eingesetzt. Starttag,
Teilzeichenfolge und Endetag werden zusammengefügt (CONCAT) und die einzelnen
Teilzeichenfolgen wiederum zusammengehängt (2. CONCAT). Die innere Schleife wird
beendet, das Ergebnis in die Variable txt übertragen und in die Datei b
rausgeschrieben. Dann greift wieder die erste Schleife und die nächste
Datenportion wird geholt usw. Probieren Sie es aus.


#makro
$$!
$$ MODE TUSCRIPT

BUILD S_TABLE quellen = "~qu1~qu2~qu3~qu4~"
BUILD X_TABLE quellxx = "~qu1~~qu2~~qu3~~qu4~~"

SET ha = *, start = "<ha>", ende = "</ha>"

ACCESS q: READ/STREAM "a" sn.zn/un, an/200 + txt + en/200, typ, offen
ACCESS z: WRITE/ERASE/STREAM "b" sn.zn/un, an + txt + en

LOOP/99999
   READ/QUIET/EXIT q
   IF (an.eq."<li>") THEN
      SET ha = SPLIT (txt, "~/~"), h2 = ""
      LOOP eintrag = ha
         SET quelle = STRINGS (eintrag, quellen)
         SET eintrag = EXCHANGE (eintrag, quellxx), eintrag = SQUEEZE (eintrag)
         SET start = SET_ATTRIBUTE (start, "gloss", quelle)
         SET eintrag = CONCAT (start, eintrag, ende)
         SET h2 = CONCAT (h2, eintrag)
      ENDLOOP
      SET txt = h2
   ENDIF
   WRITE/CLEAR z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
*eof

Mit besten Grüßen
Oliver Gasperlin
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.itug.de/pipermail/tustep-liste/attachments/20090810/f0cb0d30/attachment.htm>


Mehr Informationen über die Mailingliste Tustep-Liste