[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