28.01.26, 06:18 PM
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:
2. Reduzieren der Sternvariable auf eine einfache Variable mit der Funktion JOIN:
Anmerkung: Man kann auch Trennzeichen angeben, z. B. " " oder ";" oder eben nichts "".
3. Speichern des Variablen-Inhalts in eine Datei
Hier ein vollständiges Musterprogramm:
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.:
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 = datenHier 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
*eofSehr 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