[Tustep-Liste] Auszeichnungen vor und nach Seitenumbruch
Kuno Sch�lkle
schaelkle at zdv.uni-tuebingen.de
Mi Mär 26 11:30:21 CET 2008
Sehr geehrter Herr Bambeck,
leider ist mir im ersten Versuch ein Fehler
unterlaufen: Die schließenden Tags müssen
in umgekehrter Reihenfolge ausgegeben werden.
Mein zweiter Versuch:
Wenn in Ihren Daten für "<pb..>" z.B. "<pb attr=.../>" steht,
können Sie mit folgendem Programm jeweils vor diesem Tag die
offenen Tags schließen und danach wieder öffnen:
$$! quelle, ziel
$$-
$$ MODE TUSCRIPT
SET status = CHECK (quelle, READ, TUSTEP)
ERROR/STOP "QUELLE: ", status
SET status = CHECK (ziel, WRITE, TUSTEP)
ERROR/STOP "ZIEL: ", status
SET status = UNIQUE (quelle, ziel)
ERROR/STOP "Datei ", status, " ist mehrfach angegeben"
COMPILE
ACCESS q: READ/STREAM/RECORDS "{quelle}" ...
sn.zn/un, aken + text + eken, typ, tags
ACCESS z: WRITE/ERASE/STREAM "{ziel}" ...
sn.zn/un, aken + text + eken
SET merk = ""
LOOP/999999
READ/NEXT/EXIT q
IF (merk.NE."") WRITE/CLEAR z merk
IF (text.SW."<pb ") THEN
SET merk = EXCHANGE (tags, ":<<pb>>::")
SET sammel = ""
SET hilf = EXCHANGE (merk, ":>><<:>>'<<:")
LOOP tag = hilf
SET tag = END_TAG (tag)
SET sammel = CONCAT (tag, sammel)
ENDLOOP
WRITE/LAST z sammel
ENDIF
WRITE z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
ENDCOMPILE
Dabei werden die Daten kopiert bis "<pb attr=.../>" kommt.
Dann stehen in der Variablen "tags" alle noch offenen Tags,
einschließlich "<pb>". Dieses "<pb>" wird entfernt und die
restlichen Tags werden in der Variablen "merk" gemerkt, damit
sie nachher am Anfang des nachfolgenden Satz ausgegeben werden
können. Die offenen Tags werden nun zu schließenden umgewandelt,
in umgekehrter Reihenfolge in der Variablen "sammel" gesammelt
und dann an den vorangehenden Satz angehängt. Danach wird wieder
weiterkopiert bis zum nächsten "<pb attr=.../>".
Mit freundlichen Grüßen
Kuno Schälkle
=========================================================================
Für ein großes Portal, das derzeit vorbereitet wird, muss eine große
HTML-Datei an den Stellen, wo <pb...> steht in viele Einzeldateien zerlegt
werden. Das ist kein Problem und funktioniert bereits. Allerdings gibt es
Probleme dort, wo z.B. ein Tag-Anfang steht wie <quote>, <i> oder etwas
ähnliches, dann <pb...> auftaucht und schließlich </i> und </quote> folgen.
Das Ganze kann also ungefähr so aussehen:
xxx xxx xxx <quote> qqq qqq qqq
qqq qqq qqq <i> iii iii iii
<pb..>
iii iii</i> qqq qqq qqq</quote> xxx
xxx xxx
Allerdings kann man nie wissen, welche Tags bei <pb> noch offen sind und
davor noch geschlossen werden müssen bzw. nach dem <pb> wieder geöffnet
werden müssen, und das in der richtigen Reihenfolge, so dass da also steht:
xxx xxx xxx <quote> qqq qqq qqq
qqq qqq qqq <i> iii iii iii</i></quote>
<pb..>
<quote><i>iii iii</i> qqq qqq qqq</quote> xxx
xxx xxx
Mehr Informationen über die Mailingliste Tustep-Liste