**Lernziele**\\ Daten in eine Datei schreiben; Daten von einer Datei einlesen; Dateizugriff definieren\\
----
[[tuscript:tutorial:start|Zurück zum Inhaltsverzeichnis - Erste Schritte]]
----
====== Lektion 6: Dateizugriffe ======
- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin \\ \\
----
\\
===== 1. Makroanweisung FILE =====
\\ Mit der Makro**anweisung** "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}"
\\
===== 2. Makrofunktion FILE =====
\\ Mit der Makro**funktion** "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}
\\
===== 3. Makroanweisung ACCESS =====
\\ 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:\\
* auf Daten mit Sätzen, Zeilen, Seiten als Texteinheiten
* auf Daten mit Anfangs- und Endekennungen
* auf Daten mit Tags
* auf Daten mit definierten Strukturen
\\ Im Rahmen dieser Einführung wird **lediglich das Wichtigste der ersten beiden Zugriffsarten** vorgestellt. Ausführliche Informationen siehe Handbuch. \\ \\
==== a. auf Daten mit Sätzen, Zeilen, Seiten als Texteinheiten ====
\\ **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":\\
* READ/RECORDS - falls von der angegebenen Datei nur **gelesen** werden soll
* UPDATE/RECORDS (nur TUSTEP-Dateien) - falls **gelesen und geschrieben** werden soll
* UPDATE/ERASE/RECORDS (" ") - dto., alle Daten in der Datei werden gelöscht
* WRITE/RECORDS - falls nur ans Ende der Datei **geschrieben** werden soll
* WRITE/ERASE/RECORDS - dto., alle Daten in der Datei werden gelöscht
→ Bei Fremd-Dateien muss als **zusätzliche Option** der **Code** angegeben werden:\\
* ISO oder UTF8 oder UTF16
\\ Mögliche Angaben für "nmmr":\\
* Bei Fremd-Dateien: Name einer Variablen
* Bei TUSTEP-Dateien mit Modus RECORDS drei Variablennamen für **Seiten-, Zeilen- und Unterscheidungsnummer**, z.B. sn.zn/un
\\ "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
\\ \\
==== b. auf Daten mit Anfangs- und Endekennungen ====
\\ **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.\\ \\
----
[[tuscript:tutorial:start|Zurück zum Inhaltsverzeichnis - Erste Schritte]]