[Tustep-Liste] Aufteilen einer Tustepdatei in viele XML-Einzeldateien
Christian Sonder
christian.sonder at trilog-verlag.de
Sa Sep 27 13:59:01 CEST 2025
Liebe Frau Zinsmeister,
anbei eine kleine TUSCRIPT-Variante mit zahlreichen Kommentaren,
als Erläuterung.
Der Idee des Programms besteht einfach aus einer Schleife,
die über die Quelldatei iteriert und immer dann, wenn sie
auf "<?xml-model" trifft, eine neue Zieldatei anlegt.
In jedem Schleifendurchlauf wird eine Zeile in die jeweils
passende Zieldatei geschrieben.
Sie müssen nur die Variablen quelle und präfix an ihre
Umgebung anpassen.
Viele Grüße
Christian Sonder
#MAKRO
$$ MODE TUSCRIPT, {}
- 1. Variablen definieren
- quelle: die Datei, aus der die Daten stammen
- präfix: der gemeinsame Namensteil der Zieldateien
- n: ein Zähler, um die Zieldateien zu unterscheiden
- start: eine Suchtabelle, die den Beginn eines Blocks enthält
quelle = "teilen.data"
präfix = "abc"
n = 0
BUILD S_TABLE start = "|<\?xml-model|"
- 2. Zeilenbasierte Schleife über die Quelldatei
ACCESS daten: READ/RECORDS $quelle, s.z/u, zeile
LOOP
- Lese jeweils eine Zeile bis zum Ende der Datei
READ/NEXT/EXIT daten
- Wenn die Zeile "<?xml-model" enthält,
- beginnt ein neuer Block
IF (zeile .CT. start) THEN
- Zähler erhöhen, Zieldatei anlegen oder öffnen
- Inhalt der Zieldatei ggfs. entfernen
SET n = n + 1
SET ziel = "{präfix}_{n}.xml"
SET status = CREATE($ziel, FDF-O)
SET status = ERASE($ziel)
PRINT "Beginne in Datei {ziel} zu schreiben."
ENDIF
- Schreiben in die jeweils aktuelle Zieldatei
FILE ziel = zeile
ENDLOOP
ENDACCESS daten
*eof
Mehr Informationen über die Mailingliste Tustep-Liste