SelfProfan²:Dateien

Dateien

Da wir nun ziemlich viel mit Eingabe und Ausgabe gemacht haben (Print,Input,If...) wollen wir
nun zu den Dateien kommen. Diese können gelesen oder neu erstellt werden. Weiterhin ist
es möglich einen Text an eine bestehende Datei anzuhängen. Ein kleines Beispiel für einen
minimalen Zugriff auf eine Datei. Dies ist nur ein Ausschnitt aus einen Programm , nicht das ganze:
' Die Variable Punktzahl$ ist schon vorhanden!
Assign #1,"datei.txt"
Rewrite #1
print #1,Punktzahl$
close #1

Wer Englisch kann , der hat hiermit wahrscheinlich keine Probleme. Erklärung:
Es wird eine Datei geöffnet , "datei.txt". Diese wird dann komplett überschrieben.
Es gibt außer Rewrite noch 2 andere Möglichkeiten. Nun wird nicht auf den Bildschirm
geschrieben , sondern in die Datei. Print kann dabei wie gewohnt verwendet werden.
Danach wird die Datei wieder geschlossen. Änderungen werden erst übernommen ,
sobald die Datei geschlossen ist. Beim lesen muss man nicht warten. Nun genaueres zu
Assign und Rewrite:
Assign #1,"datei.txt"
Die Datei wird mit Kanal 1 geöffnet und die Datei heißt "datei.txt". Die Anführungszeichen
müssen dabeisein. Rewrite ist Englisch (wie oben gesagt) und bedeutet "Überschreiben".
Es gibt noch Reset , das bedeutet lesen und Append , dass anhängen bedeutet. Beispiel:
Declare zumschreiben$,zumlesen$,zumanhängen$
zumschreiben$="Etwas zum schreiben"
zumlesen$="Etwas zum lesen"
zumanhängen$="Etwas zum anhängen"
Assign #1,"datei1.txt"
Assign #2,"name.dat"
Assign #3,"vorhanden.ode"
Rewrite #1
Reset #2
Append #3
print #1,zumschreiben$
print #1,"Das war was geschriebenes!"
Input #2,zumlesen$
print zumlesen$
print #3,zumanhängen$
close #1
close #2
close #3

Hier sind nun 3 Dateien gleichzeitig geöffnet. Es können maximal 15 Dateien gleichzeitig
geöffnet sein. Also geht es nur bis #15. Zum Lesen kann man Input #1,string$ verwenden.
Natürlich geht es auch mit anderen "Dateikanälen". Ein kleines Beispiel , dass eine Datei
öffnet und diese liest:
Declare buffer$
Assign #1,"Datei.txt"
Reset #1
WhileNot Eof(#1)
Input #1,buffer$
print buffer$
Wend
close #1

Nun steht die ganze Datei auf dem Bildschirm. Die WhileNot-Schleife kennst du wahrscheinlich
schon aus den vorherigen Kapiteln. Hier ist aber eine neue Bedingung: Eof(#1). Sie ist Englisch
und bedeutet "End Of File". Das bedeutet soviel wie "Das Ende der Datei". Aus der Schleife
könnte man einen Satz bilden: "Solange,bis du nicht am Ende der Datei angestoßen bist,
lese eine Zeile ein und schreibe sie auf den Bildschirm." Man sollte allerdings nur Dateien
mit Text so öffnen , denn es macht ja wenig Sinn , wenn man eine Bild-Datei öffnet und nur
wirre Zeichen erhält. Ansonsten kann man alles in eine Datei schreiben , was man will.

Einführung
Grundlagen
Windows-Modus
Anhang

(©) Michael Stapelberg