Inhaltsverzeichnis
Lernziele
Daten in eine Datei schreiben; Daten von einer Datei einlesen; Dateizugriff definieren
Zurück zum Inhaltsverzeichnis - Erste Schritte
Lektion 6: Dateizugriffe
- schneider-lastin
1. Makroanweisung FILE
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}"
2. Makrofunktion FILE
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}
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.