Bezeichnung
OpenFile -- öffnet eine Datei zum Lesen und/oder Schreiben
Übersicht
[id] = OpenFile(id, filename$[, mode, table])
Beschreibung
Dieser Befehl versucht, die durch 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:
Mit diesem Tag können Sie ein oder mehrere Dateiadapter angeben, die die angegebene Datei öffnen sollen. Dies muss als eine Zeichenfolge festgelegt werden, die den/die Namen eines oder mehreren Adaptermodulen enthält. Standardmäßig wird der Adapter verwendet, der mit SetDefaultAdapter() gesetzt wurde. Siehe Lader und Adapter für Details. (V6.0)

Encoding:
Falls die Datei eine Textdatei ist, können Sie diesen Tag auf den von der Datei verwendeten Zeichensatz setzen. Hollywood verarbeitet dann Zeichensatzkonvertierungen automatisch beim Lesen von der oder Schreiben in die Datei mit Befehlen wie ReadLine(), ReadString(), WriteLine() oder WriteString(). Standardmäßig erwartet Hollywood, dass Textdateien im UTF-8-Zeichensatz vorliegen, da dies der Standardzeichensatz von Hollywood ist. Wenn Sie stattdessen aus einer Datei mit der ISO 8859-1-Kodierung lesen oder in diese Datei schreiben möchten, setzen Sie einfach 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:
Setzen Sie diesen Tag auf 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:
Dieser Tag kann verwendet werden, um zusätzliche Daten anzugeben, die an den Dateiadapter übergeben werden sollen. Wenn Sie diesen Tag verwenden, müssen Sie ihn auf eine Tabelle mit Schlüssel-Wert-Paaren setzen, die die zusätzlichen Daten enthalten, die an Plugins übergeben werden sollen. Siehe Benutzer-Tags für Details. (V10.0)

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().

Eingaben
id
Identifikator für die Datei oder Nil für die automatische ID-Auswahl
filename$
Name der Datei, die geöffnet wird
mode
Modus, wie die Datei geöffnet wird: #MODE_READ (nur lesen), #MODE_WRITE (nur schreiben) oder #MODE_READWRITE (lesen, schreiben und ändern) (voreingestellt ist #MODE_READ) (V2.0)
table
optional: Tabellenargument für weitere Parameter (V6.0)
Rückgabewerte
id
optional: Identifikator der Datei; wird nur zurückgegeben werden, wenn Sie Nil als id angegeben haben (siehe oben)
Beispiel
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.

Navigation zeigen