[Tustep-Liste] Inhalt einer Datei in Einzeldateien speichern

Kuno Schälkle Schaelkle at zdv.uni-tuebingen.de
Mon Oct 10 09:10:20 CEST 2005


Lieber Herr Brunschoen,

> in einer Datei sind Daten nach folgenden Schema geordnet:
>
> 8.1 | <page nr="3">
> 8.2 | Viel Text
> 8.3 | Viel Text
> 9.1 | <page nr="57">
> 9.1 | Noch viel mehr Text
> 10.1 | <page nr="63">
> 10.2 | Viel Text
>
> Es wäre hilfreich, wenn Tustep die Daten, die jeweils mit <page nr="n">
> beginnen, in einer neuen Datei speichern könnte, wobei der Dateiname aus
> dem Wert der Seitenzahl bestehen soll, also z.B. 3.xml, 57.xml etc. Im
> Idealfall beginnt mit <page nr="n"> ein neuer Satz, also z.B. 8.1.

Sie haben ja schon einige schoene Loesungen bekommen.
Hier noch eine, die der von Herrn Kollatz aehnlich ist, die aber
die von Herrn Kollatz genannten unschoenen Eigenschaften
nicht hat.

Mit freundlichen Gruessen
Kuno Schaelkle

----------------------------------------------------
01: $$! quelle
02: $$=- {}
03: MODE VARIABLE

04: SET status = CHECK (quelle, READ, TUSTEP)
05: ERROR/STOP "QUELLE: ", status

06: BUILD S_TABLE page = *
07: DATA |<<page nr="<>>/">>|

08: ACCESS q: READ/STREAM/RECORDS "{quelle}" ...
09:           sq.zq/uq, aken/page + txt + eken, typ

10: SET file = ""

11: LOOP/999999
12:    READ/EXIT q
13:    IF (aken.NE."")  THEN
14:       IF (file.NE."")  ENDACCESS z
15:       SET nr = GET_ATTRIBUTE (aken, "nr")
16:       SET file = "D{nr}.xml"
17:       SET status = OPEN (file, WRITE, -std-)
18:       IF (status.NE."OK")  THEN
19:          SET status = CREATE (file, SEQ-P, -std-)
20:          ERROR/STOP "ZIEL: ", status
21:       ENDIF
22:       ACCESS z: WRITE/ERASE/RECORDS "{file}" sz.zz/uz, txt, anz
23:       SET txt = CONCAT (aken, txt)
24:    ENDIF
25:    SET sz = sq, zz = zq, uz = uq
26:    WRITE z
27: ENDLOOP

28: IF (file.NE."")  ENDACCESS z
29: ENDACCESS q
----------------------------------------------------

04: QUELL-Datei abprüfen
05: falls nicht ok, Fehlermeldung
06: Muster für <page nr=".."> = "neue ZIEL-Datei" definieren
08: QUELL-Datei öffnen
09: Datenportionen beginnen bei Zeilenwechsel und <page nr="..">
10: noch keine ZIEL-Datei geöffnet
12: Datenportion lesen, bei Datenende Schleife verlassen
13: falls <page nr=".."> gelesen, ...
14: falls ZIEL-Darei geöffnet, schließen
15: Seitennummer von <page nr=".."> extrahieren
16: Dateiname für ZIEL-Datei bilden
17: ZIEL-Datei öffnen
18: falls nicht möglich, ...
19: ZIEL-Datei einrichten
20: falls nicht ok, Fehlermeldung
22: ZIEL-Datei öffnen
23: <page nr=".."> zum Text hinzufügen
25: Satznummer von QUELL-Datei übernehmen
26: Text ausgeben
28: falls ZIEL-Datei geöffnet, schließen
29: QUELL-Datei schließen



More information about the Tustep-Liste mailing list