Anweisung Open

Öffnet einen Datenkanal.

Syntax:

Open Dateiname As String [For Modus] [Access EAModus] [Schutz] As [#]Dateinummer As Integer [Len = Datensatzlänge]

Parameter:

Dateiname: Name und Pfad der zu öffnenden Datei. Wenn Sie versuchen, eine nicht vorhandene Datei zu lesen (Zugriff = Read/Lesen), erscheint eine Fehlermeldung. Wenn Sie versuchen, in eine nicht vorhandene Datei zu schreiben (Zugriff = Write/Schreiben), wird eine neue Datei angelegt.

Modus:Schlüsselwort, das den Dateimodus genau angibt. Es existieren: Append (sequentielle Datei wird erweitert), Binary (auf die Daten kann nur byteweise über Get und Put zugegriffen werden), Input (öffnet den Datenkanal zum Lesen), Output (öffnet den Datenkanal zum Schreiben) und Random (bearteitet relative Dateien).

EAModus: Schlüsselwort, das definiert, auf welche Art der Zugriff erfolgen kann. Erlaubt sind: Read (nur lesen), Write (nur schreiben), Read Write (beides).

Schutz: Schlüsselwort, das den Sicherheitsstatus der Datei nach dem Öffnen definiert. Es gelten: Shared (Datei kann auch von anderen Programmen geöffnet werden), Lock Read (Datei wird vor dem Lesen geschützt), Lock Write (Datei wird vor dem Beschreiben geschützt), Lock Read Write (auf die Datei kann gar nicht zugegriffen werden).

Dateinummer: Beliebiger Integer-Ausdruck im Wertebereich von 0-511, der die Nummer eines freien Datenkanals angibt, über den später durch diverse Befehle auf die Datei zugegriffen werden kann. Die Datenkanalnummer kann nicht irgendeine sein, sondern sollte direkt vor der Open-Anweisung mit der FreeFile-Funktion ermittelt werden.

Datensatzlänge: Legt die Länge der Datensätze für Dateien mit wahlfreiem Zugriff fest.

Notizsymbol

Um den Inhalt einer Datei zu bearbeiten, muss diese mit der Open-Anweisung geöffnet worden sein. Wenn Sie versuchen, eine bereits geöffnete Datei zu öffnen, erscheint eine Fehlermeldung.


Beispiel:

Sub ExampleWorkWithAFile

Dim iNumber As Integer

Dim sLine As String

Dim aFile As String

Dim sMsg As String

    aFile = "c:\data.txt"

    iNumber = Freefile

    Open aFile For Output As #iNumber

    Print #iNumber, "Das ist eine Zeile Text"

    Print #iNumber, "Das ist eine weitere Zeile Text"

    Close #iNumber

    iNumber = Freefile

    Open aFile For Input As iNumber

    While Not eof(iNumber)

        Line Input #iNumber, sLine

        If sLine <>"" Then

            sMsg = sMsg & sLine & chr(13)

        End If

    Wend

    Close #iNumber

    MsgBox sMsg

End Sub