**Lernziele**\\  Neue Dateien einrichten; bestehende Dateien anmelden, abmelden, löschen, prüfen, umbenennen; vorhandene Dateien anzeigen\\
----
[[tuscript:tutorial:start|Zurück zum Inhaltsverzeichnis - Erste Schritte]]
----
====== Lektion 5: Dateiverwaltung ======
- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin - {{files_open:benutzericons:kollatz-lg.jpg?nolink&16x16|kollatz}} kollatz\\ \\ 
----
\\  Einige der folgenden Funktionen entsprechen den Leistungen der TUSTEP-Kommandos ''#DATEI'', ''#ANMELDE'', ''#ABMELDE'', ''#LOESCHE'', ''#AENDERE'' und ''#LISTE''. Ausführliche Darstellung siehe Handbuch.\\ \\ 
===== 1. Einrichten einer Datei: CREATE =====
\\ **allgemein: CREATE (name, typ-option, traeger)**\\ 
$$ MODE TUSCRIPT,{}
-  Einrichten einer temporären TUSTEP-Datei 'test1'
ERROR/STOP CREATE ("test1",seq-t,-std-)
- Einrichten einer temporären TUSTEP-Datei 'test2', die ohne Nachfragen überschrieben werden kann
ERROR/STOP CREATE ("test2",seq-e,-std-)
-  Einrichten einer permanenten TUSTEP-Datei 'test2.tf'
ERROR/STOP CREATE ("test2.tf",seq-p,-std-)
- Einrichten einer permanenten Fremddatei 'test3.txt'
ERROR/STOP CREATE ("test3.txt",fdf-p,-std-)
**►** Eine Datei wird beim Einrichten gleichzeitig **auch zum Schreiben angemeldet**.\\ \\ **Alternative Angaben**\\ 
  * **zu name:** Statt eines in " " eingeschlossenen Dateinamens kann eine **Variable** angegeben werden, die den Dateinamen enthält.
  * **zu typ:** Statt "SEQ" (für TUSTEP-Dateien mit sequentiellem Zugriff) kann auch "RAN" (für TUSTEP-Dateien mit schnellem random-Zugriff) angegeben werden.
  * **zu option:** Statt **t** (für temporäre Dateien) oder **p** (für permanente Dateien) kann auch **o** angegeben werden; dann wird zuerst versucht, die angegebene Datei zum Schreiben anzumelden, existiert sie noch nicht, wird eine permanente Datei eingerichtet.<
\\ 
===== 2. Anmelden einer Datei: OPEN =====
\\ **allgemein: OPEN (name, modus, traeger)**\\  Eine Datei kann **zum Lesen** (modus=READ) oder **zum Schreiben** (modus=WRITE) angemeldet werden.\\ 
$$ MODE TUSCRIPT,{}
SET datei = "test2.tf"
-  Anmelden einer Datei zum Lesen
ERROR/STOP OPEN (datei,READ,-std-)
-  Anmelden einer Datei zum Schreiben
ERROR/STOP OPEN (datei,WRITE,-std-)
\\ 
===== 3. Abmelden einer Datei: CLOSE =====
\\ **allgemein: CLOSE (name)**\\  Wird eine **temporäre Datei** abgemeldet, so wird sie gelöscht.\\ 
$$ MODE TUSCRIPT,{}
SET datei = "test2.tf"
ERROR/STOP CLOSE (datei)
\\ 
===== 4. Löschen einer Datei: DELETE =====
\\ **allgemein: DELETE (name)**\\ 
$$ MODE TUSCRIPT,{}
SET datei = "test2.tf"
ERROR/STOP DELETE (datei)
**►** Sollen **nur die Daten in einer Datei gelöscht** werden, so lautet die Makrofunktion **ERASE (name)**.\\ \\ 
===== 5. Prüfen einer Datei: CHECK =====
\\ **allgemein: CHECK (name, art, typ)**\\ **Angaben**\\ 
  * **zu art:** WRITE prüft, ob die Datei zum Schreiben angemeldet ist, READ, ob die Datei zum Lesen oder Schreiben angemeldet ist.
  * **zu typ:** TUSTEP prüft, ob die Datei eine TUSTEP-Datei ist, SYSTEM, ob die Datei eine Fremddatei ist.
**Beispiel:**\\ 
$$ MODE TUSCRIPT,{}
SET datei = "test3.txt"
ERROR/STOP CHECK (datei,READ,SYSTEM)
\\ 
===== 6. Umbenennen einer Datei: RENAME =====
\\ **allgemein: RENAME (altername, neuername)**\\ 
$$ MODE TUSCRIPT,{}
SET alt = "textalt.tf", neu = "textneu.tf"
ERROR/STOP RENAME (alt, neu)
\\ 
===== 7. Kopieren einer Datei: COPY =====
\\ **allgemein: COPY (dateia, dateib)**\\ 
SET a = "dateia.tf", b = "dateib.tf"
ERROR/STOP COPY (a,b)
**►** Die Daten in der Zieldatei werden überschrieben.\\ \\ 
===== 8. Liste aller angemeldeten Dateien: FILES =====
\\ **allgemein: FILES ()**\\ 
$$ MODE TUSCRIPT,{}
SET list = FILES ()
In die Variable "list" werden alle angemeldeten Dateien (auch temporäre) abgespeichert.\\ \\ **Erweiterung:**\\ **Ausgabe** ("PRINT") der **Anzahl** ("SIZE") und der **Namen** ("FILES") der Dateien:\\ 
$$ MODE TUSCRIPT,{}
SET list = FILES ()
SET number = SIZE (list)
PRINT number
PRINT list
\\ 
===== 9. Liste aller Dateien: FILE_NAMES =====
\\ **allgemein: FILE_NAMES (projekt, traeger)**\\  Hier mit projekt = + (= Dateien im aktuellen Projekt)\\ 
$$ MODE TUSCRIPT,{}
SET list = FILE_NAMES (+,-std-)
PRINT list
\\
----
[[tuscript:tutorial:start|Zurück zum Inhaltsverzeichnis - Erste Schritte]]