[id] = OpenFile(id, filename$[, mode, table])
filename$
angegebene Datei
zu öffnen und weist Ihr die id
zu. Wenn Sie Nil als id
übergeben, wird OpenFile()
automatisch eine freie ID auswählen
und ihnen zurückgeben. Falls die Datei nicht existiert, wird sie automatisch
angelegt und Sie können sie beschreiben.
Alle Schreib- und Leseoperationen starten an der aktuellen Cursorposition innerhalb der Datei. Sie können die Position innerhalb der Datei mit Hilfe vom Befehl Seek() manuell verändern, aber sie wird auch von anderen Befehlen erhöht, die aus der Datei lesen oder hineinschreiben.
Ab Hollywood 2.0 können Sie das optionale Argument mode
verwenden,
um die Datei im Lese- (voreingestellt), im Schreibmodus oder
im gemeinsamen Modus zu öffnen, was bedeutet, dass Sie aus
der Datei lesen und auch schreiben können. Wenn eine Datei
im Lesemodus geöffnet wird, werden alle Schreibvorgänge fehlschlagen.
Wenn eine Datei im Schreibmodus geöffnet wird, schlagen alle
Leseoperationen fehl. Beachten Sie, dass der Befehl OpenFile()
mit #MODE_WRITE
immer eine leere Datei erstellt. Um eine bestehende
Datei zu ändern, muss #MODE_READWRITE
verwendet werden.
Ab Hollywood 6.0 hat dieser Befehl ein optionales Argument
table
, das verwendet werden kann, um zusätzliche Parameter
zu übergeben. Folgende Elemente werden zur Zeit erkannt:
Adapter:
Encoding:
Encoding
auf #ENCODING_ISO8859_1
und Hollywood wird alle Konvertierungen
von und nach ISO 8859-1 automatisch durchführen.
Siehe SetDefaultEncoding für eine Liste der verfügbaren Zeichensätze.
(V9.0)
WriteBOM:
True
, wenn OpenFile()
die UTF-8-BOM
(Byte Order Mark/Bytereihenfolge-Markierung) am Anfang der Datei
hinzufügen soll. Offensichtlich macht OpenFile()
dies nur, wenn
die Datei im Schreibmodus (#MODE_WRITE
) geöffnet wurde und die
Codierung der Datei auf #ENCODING_UTF8
gesetzt wurde. (V9.0)
UserTags:
Obwohl Hollywood alle geöffneten Dateien automatisch beim Beenden schließt, wird dringend empfohlen, dass Sie eine geöffnete Datei schließen. Dies erledigen Sie mit dem Befehl CloseFile(), so dass diese Datei wieder für das Betriebssystem verfügbar wird.
Ab Hollywood 9.0 kann filename$
auch eine der speziellen Konstanten
#STDIN
, #STDOUT
und #STDERR
sein. Dies ist nützlich für fortgeschrittene
Programmierer, die auf die Dateistreams stdin
, stdout
und stderr
zugreifen möchten, die jedem Programm zugeordnet sind.
Dieser Befehl steht auch als Präprozessor-Anweisung zur Verfügung: Verwenden Sie @FILE, um eine Datei für den späteren Gebrauch bereits zu öffnen.
Siehe auch CloseFile() und Exists().
#MODE_READ
(nur lesen), #MODE_WRITE
(nur schreiben) oder #MODE_READWRITE
(lesen, schreiben und ändern) (voreingestellt ist #MODE_READ
) (V2.0)id
angegeben haben (siehe oben)OpenFile(1, "Highscores.txt") While Not Eof(1) Do NPrint(ReadLine(1)) CloseFile(1)Dieser Code öffnet die Datei "Highscores.txt", weist ihr den Identifikator 1 zu und gibt alle ihre Zeilen auf dem Bildschirm aus.