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