Inhalte

# Anweisung Open

Öffnet einen Datenkanal.

### Syntax:

    Open pathname For mode [Access io] [locking] As [#]filenum [Len=recLen]

### Parameter:

Pfadname: Pfad und Name der zu öffnenden Datei. Wenn Sie versuchen, eine nicht vorhandene Datei zu lesen (Access = Read), erscheint eine Fehlermeldung. Wenn Sie versuchen, in eine nicht vorhandene Datei zu schreiben (Access = Write), wird eine neue Datei erstellt.

mode: Schlüsselwort, das den Dateimodus festlegt. Gültige Werte: Append (an sequentielle Datei anhängen), Binary (Daten können byteweise mit Get und Put aufgerufen werden), Input (öffnet Datenkanal zum Lesen), Ausgabe (öffnet den Datenkanal zum Schreiben) und Random (bearbeitet relative Dateien).

io: Schlüsselwort, das den Zugriffstyp definiert. Gültige Werte: Read (schreibgeschützt), Write (schreibgeschützt), Read Write (beides).

locking: Schlüsselwort, das den Sicherheitsstatus einer Datei nach dem Öffnen definiert. Gültige Werte: Shared (Datei kann von anderen Anwendungen geöffnet werden), Lock Read (Datei ist gegen Lesen geschützt), Lock Write (Datei ist schreibgeschützt), Lock Read Write (verweigert den Dateizugriff).

filenum: Ein ganzzahliger Ausdruck von 0 bis 511, um die Nummer eines freien Datenkanals anzugeben. Sie können dann Befehle über den Datenkanal übergeben, um auf die Datei zuzugreifen. Die Dateinummer muss von der Funktion FreeFile unmittelbar vor der Anweisung Open ermittelt werden.

recLen: Legen Sie für Dateien mit dem Zugriff Random die Länge der Datensätze 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:\Users\ThisUser\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

      Sub ExampleWorkWithAFile
          Dim iNumber As Integer
          Dim sLine As String
          Dim aFile As String
          Dim sMsg As String
          aFile = "~/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

Wenn die Anweisung Open versucht, eine Datei zu öffnen, für die der aktuelle Benutzer keine Lese-/Schreibberechtigungen hat, wird ein E/A-Fehler ausgelöst.

Verwandte Themen

Anweisung Close

Funktion FreeFile

Anweisung Input#

Anweisung Print#