**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]]