Itug Forum Das TUSTEP-Forum der ITUG TUSCRIPT Alle Datensätze einer TUSTEP-Datei in einem Datensatz zusammenführen

Alle Datensätze einer TUSTEP-Datei in einem Datensatz zusammenführen

Alle Datensätze einer TUSTEP-Datei in einem Datensatz zusammenführen

28.01.26, 06:18 PM
#1
Eine Frage aus der TUSTEP Nutzergemeinde: Ich möchte alle Sätze einer Tustep-Datei in einen einzigen Satz schreiben, ohne dabei mit AA den Abschnittsanfang angeben zu müssen. Geht das?

Mit TUSCRIPT ist das sehr einfach möglich:

1. Laden des Datei-Inhalts in eine Sternvariable:

Code:

SET daten = FILE(quelle)


2. Reduzieren der Sternvariable auf eine einfache Variable mit der Funktion JOIN:

Code:

SET daten = JOIN(daten, "")

Anmerkung: Man kann auch Trennzeichen angeben, z. B. " " oder ";" oder eben nichts "".

3. Speichern des Variablen-Inhalts in eine Datei

Code:

FILE/ERASE ziel = daten


Hier ein vollständiges Musterprogramm:

Code:

#MAKRO
$$ MODE TUSCRIPT, {}
SET quelle = "Hier der Name der Quelldatei"
SET ziel = "Hier der Name der Zieldatei"
SET daten = FILE($quelle)
SET daten = JOIN(daten, "")
FILE/ERASE ziel = daten
*eof

Sehr nützlich in diesem Zusammenhang sind die TUSCRIPT-Funktionen RECORDS und SIZE, um zu kontrollieren, ob ein JOIN wie erwartet funktioniert hat.
Mit diesen kann die Anzahl der Datensätze einer Datei abgefragt werden (Records) oder die Anzahl der Zeilen in einer Sternvariable (SIZE), z. B.:

Code:

#MAKRO
$$ MODE TUSCRIPT, {}
SET quelle = "Hier der Name derQuelldatei"
SET ziel = "Hier der Name der Zieldatei"
SET anzahl = RECORDS($quelle)
PRINT "Die Datei {quelle} hat {anzahl} Datensätze."
SET daten = FILE($quelle)
SET daten = JOIN(daten, "")
SET anzahl = SIZE(daten)
PRINT "Die Variable daten hat jetzt nur noch {anzahl} Zeile(n)."
FILE/ERASE ziel = daten
*eof
Dieser Beitrag wurde zuletzt bearbeitet: Vor 10 Stunden von ChristianSonder.
ChristianSonder
28.01.26, 06:18 PM #1

Eine Frage aus der TUSTEP Nutzergemeinde: Ich möchte alle Sätze einer Tustep-Datei in einen einzigen Satz schreiben, ohne dabei mit AA den Abschnittsanfang angeben zu müssen. Geht das?

Mit TUSCRIPT ist das sehr einfach möglich:

1. Laden des Datei-Inhalts in eine Sternvariable:

Code:

SET daten = FILE(quelle)


2. Reduzieren der Sternvariable auf eine einfache Variable mit der Funktion JOIN:

Code:

SET daten = JOIN(daten, "")

Anmerkung: Man kann auch Trennzeichen angeben, z. B. " " oder ";" oder eben nichts "".

3. Speichern des Variablen-Inhalts in eine Datei

Code:

FILE/ERASE ziel = daten


Hier ein vollständiges Musterprogramm:

Code:

#MAKRO
$$ MODE TUSCRIPT, {}
SET quelle = "Hier der Name der Quelldatei"
SET ziel = "Hier der Name der Zieldatei"
SET daten = FILE($quelle)
SET daten = JOIN(daten, "")
FILE/ERASE ziel = daten
*eof

Sehr nützlich in diesem Zusammenhang sind die TUSCRIPT-Funktionen RECORDS und SIZE, um zu kontrollieren, ob ein JOIN wie erwartet funktioniert hat.
Mit diesen kann die Anzahl der Datensätze einer Datei abgefragt werden (Records) oder die Anzahl der Zeilen in einer Sternvariable (SIZE), z. B.:

Code:

#MAKRO
$$ MODE TUSCRIPT, {}
SET quelle = "Hier der Name derQuelldatei"
SET ziel = "Hier der Name der Zieldatei"
SET anzahl = RECORDS($quelle)
PRINT "Die Datei {quelle} hat {anzahl} Datensätze."
SET daten = FILE($quelle)
SET daten = JOIN(daten, "")
SET anzahl = SIZE(daten)
PRINT "Die Variable daten hat jetzt nur noch {anzahl} Zeile(n)."
FILE/ERASE ziel = daten
*eof

Benutzer, die gerade dieses Thema anschauen:
 1 Gast/Gäste
Benutzer, die gerade dieses Thema anschauen:
 1 Gast/Gäste