Module
Inhalte
Index 🔎︎

# 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.

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