Lernziele
 Daten in eine Datei schreiben; Daten von einer Datei einlesen; Dateizugriff definieren
Zurück zum Inhaltsverzeichnis - Erste Schritte
- 
 schneider-lastin 
 Mit der Makroanweisung „FILE“ können Daten in eine Datei geschrieben werden
allgemein: $$ FILE „dateiname“ = variablenname
 → Der Inhalt der angegebenen Variablen wird als nächster Satz ans Ende der angegebenen Datei geschrieben.
 → Ist die Variable eine Sternvariable, wird für jede Zeile der Variablen ein Satz ans Dateiende geschrieben.
 → Die angegebene Datei darf eine TUSTEP- oder eine ASCII-Datei sein.
FILE/ERASE: löscht zuerst die in der Datei stehenden Daten.
FILE/PRINT: gibt eine Meldung mit Angaben zu den ausgegebenen Daten ins Ablaufprotokoll aus.
Beispiel:
$$ MODE TUSCRIPT,{}
-  Datei einrichten
SET datei = "text1.txt"
SET status = CREATE (datei,fdf-t,-std-)
-  Daten in Sternvariable text abspeichern
SET text = *
DATA Dies ist der erste Satz.
DATA Dies ist der zweite Satz.
DATA ...
-  Daten in Datei schreiben, vorhandene Daten ggf. löschen
FILE/ERASE "{datei}" = text
-  Datei anzeigen
BROWSE "{datei}"
 Mit der Makrofunktion „FILE“ können Daten von einer (TUSTEP- oder Fremd-)Datei eingelesen und in eine Variable gespeichert werden
allgemein: FILE (name, auswahl, anzahl)
 → Zu den Argumenten „auswahl“ und „anzahl“ sind verschiedene Angaben möglich; siehe Handbuch.
 → Werden diese beiden Argumente weggelassen, wird der gesamte Datei-Inhalt unverändert eingelesen.
 → Die Ausgabe erfolgt in eine Sternvariable, wobei jede Zeile der Sternvariablen einem Satz (record) der Datei entspricht.
Beispiel:
$$ MODE TUSCRIPT,{}
-  Datei anmelden
SET status = OPEN ("quelldatei.tf",READ,-std-)
-  Daten der Datei in die (Stern-)Variable text speichern
SET text = FILE ("quelldatei.tf")
-  Inhalt der (Stern-)Variablen ins Ablaufprotokoll ausgeben
* {text}
 Neben den unter 1. und 2. beschriebenen Möglichkeiten erfolgt der Zugriff auf Daten in Dateien üblicherweise nach einer Zugriffsdefinition mit der Makroanweisung „ACCESS“; beendet wird der Dateizugriff mit der Anweisung „ENDACCESS“:
$$ MODE TUSCRIPT,{}
ACCESS daten: .....
...
ENDACCESS daten
oder mit Ausgabe einer Meldung ins Ablaufprotokoll:
ENDACCESS/PRINT daten
→ Für „daten“ steht ein frei wählbarer Name für die Daten; er wird bei allen anderen Anweisungen für den Dateizugriff anstelle eines Dateinamens verwendet, um anzugeben, auf welche Datei zugegriffen werden soll.
 Folgende Arten von Dateizugriffen werden unterschieden:
 Im Rahmen dieser Einführung wird lediglich das Wichtigste der ersten beiden Zugriffsarten vorgestellt. Ausführliche Informationen siehe Handbuch. 
Anweisung allgemein:
$$ MODE TUSCRIPT,{}
ACCESS daten: modus/option "dateiname" nmmr, text, anzahl
Diese Dateizugriffe erlauben das Lesen, Beschreiben und Durchsuchen von TUSTEP- und Fremd-Dateien.
 Mögliche Angaben u.a. für „modus/option“:
→ Bei Fremd-Dateien muss als zusätzliche Option der Code angegeben werden:
 Mögliche Angaben für „nmmr“:
„text“: Name der Variablen, die den Text enthält
Beispiel für die Definition von Dateizugriffen bei einfachem satzweisem Kopieren:
$$ MODE TUSCRIPT,{}
ACCESS q: READ       /RECORDS "quelldatei.tf" sn.zn/un, text
ACCESS z: WRITE/ERASE/RECORDS "zieldatei.tf" sn.zn/un, text
LOOP/999999
   READ/IGNORE/EXIT q
   WRITE z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
Anweisung allgemein:
$$ MODE TUSCRIPT,{}
ACCESS daten: modus/option "dateiname" ...
              nmmr, aken/atab + text/ttab + eken/etab, typ
Diese Dateizugriffe erlauben das Lesen und Beschreiben von TUSTEP- und Fremd-Dateien.
 Wird fortgesetzt.