[Tustep-Liste] Auszeichnungen vor und nach Seitenumbruch

Kuno Sch�lkle schaelkle at zdv.uni-tuebingen.de
Mi Mär 26 11:08:15 CET 2008


Sehr geehrter Herr Bambeck,

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 hilf = EXCHANGE (merk, ":<<:<</:")
      WRITE/LAST z hilf
   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" die offenen Tags,
einschließlich "<pb>". Dieses "<pb>" wird entfernt und die
restlichen Tags werden in der Variablen "merk" gemerkt, damit
sie vor dem nächsten Satz ausgegeben werden können.
Die offenen Tags werden noch zu schließenden umgewandelt und
diese an den letzten Satz angehängt. Dann wird wieder
weiterkopiert bis zum nächsten "<pb attr=.../>".

=========================================================================

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