Stream=OPENFILE (Datei$)


Beschreibung
Dieser Befehl öffnet eine Datei für einen Lese- und Schreibzugriff gleichzeitig. Somit kann man eine Datei sehr bequem aktualisieren (z.B. Score-Liste oder Datenbank), ohne, dass eine Kopie davon erstellt werden muss.

Diese Funktion liefert einen Wert, der für weitere READ- und WRITE-Befehle unbedingt notwendig ist. Wird Null zurückgeliefert, dann wurde die Datei nicht gefunden.

Beachte, dass die Daten keine variable Längen haben dürfen, da dadurch andere Daten überschrieben werden können.

Benutze FILEPOS, um die Dateiposition zu ermitteln und SEEKFILE, um die Dateiposition zu setzten. Mit den normalen Befehlen READBYTE, READBYTES, READFLOAT, READINT, READLINE, READSHORT und READSTRING können Daten ausgelesen werden. Und mit WRITEBYTE, WRITEBYTES, WRITEFLOAT, WRITEINT, WRITELINE, WRITESHORT sowie WRITESTRING können Daten geschrieben werden. Benutze CLOSEFILE, um die geöffnete Datei wieder zu schließen.


Parameter
Datei = String mit dem Namen einer Datei, die für diesen Zugriff geöffnet werden soll. Es kann auch ein Pfad angegeben werden. Schreibvorgang auf ein schreibgeschütztes Medium ist nicht möglich.

Die Datei muss bereits existieren, da sonst diese Meldung nach einem Schreib- oder Lesevorgang erscheint. Benutze vorher den Befehl FILETYPE.


Rückgabewert
Identität, die für weitere Dateibefehle unbedingt notwendig ist. Wird Null zurückgeliefert, dann wurde die Datei nicht gefunden.


Beispiel
Dieses Programm demonstriert viele Dateibefehle. Zuerst werden Daten in eine Datei geschrieben, dann verändert und wieder ausgelesen:

fileout = WRITEFILE("mydata.dat")
WRITEINT(fileout, 1)
WRITEINT(fileout, 2)
WRITEINT(fileout, 3)
WRITEINT(fileout, 4)
WRITEINT(fileout, 5)
CLOSEFILE(fileout)

DisplayFile("Originaldatei:", mydata.dat")

file = OPENFILE("mydata.dat")
SEEKFILE(file, 8)
WRITEINT(file, 9999)
CLOSEFILE(file)

DisplayFile("Geänderte Datei", "mydata.dat")
WAITKEY()

FUNCTION DisplayFile(Tittle$, Filename$)
   PRINT tittle$
   filein = READFILE(Filename$)
   WHILE NOT EOF(filein)
      Number = READINT(filein)
      PRINT Number
   WEND
   CLOSEFILE(filein)
   PRINT
END FUNCTION


Siehe auch
CLOSEFILE, FILEPOS, READBYTE, READBYTES, READFILE, READFLOAT, READINT, READLINE, READSHORT, READSTRING, SEEKFILE, WRITEBYTE, WRITEBYTES, WRITEFILE, WRITEFLOAT, WRITEINT, WRITELINE, WRITESHORT, WRITESTRING