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.