Inhalte
Index 🔎︎

# Anweisung Open

Öffnet einen Datenkanal.

### Syntax:

    Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]i37502

### 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 Ausdruck vom Typ Integer 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 Anweisung Open mit der Funktion FreeFile ermittelt werden.

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

Um den Inhalt einer Datei zu bearbeiten, muss diese mit der Anweisung Open 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