Open utasítás
Megnyit egy adatcsatornát.
Szintaxis:
Open Fájlnév As String [For Mode] [Access IO-mód] [Védelem] As [#]Fájlszám As Integer [Len = AdathalmazHossza]
Paraméterek:
Fájlnév: A megnyitni kívánt fájl neve és elérési útja. Ha egy nem létező fájlt próbál meg olvasni (Access = Read), akkor egy hibaüzenet jelenik meg. Ha egy nem létező fájlt próbál meg írni (Access = Write), akkor egy új fájl jön létre.
Mód: A fájlmódot megadó kulcsszó. Érvényes értékek: Append (hozzáfűzés egy szekvenciális fájlhoz), Binary (bináris, az adat bájtonként érhető el a Get és Put segítségével), Input (megnyit egy adatcsatornát olvasásra), Output (megnyit egy adatcsatornát írásra), és Random (relatív fájlok szerkesztése).
IO-mód: A hozzáférés típusát megadó kulcsszó. Érvényes értékek: Read (csak olvasható), Write (csak írható), Read Write (mindkettő).
Védelem: A fájl megnyitás utáni biztonsági állapotát meghatározó kulcsszó. Érvényes értékek: Shared (a fájl megosztott, megnyithatja másik alkalmazás), Lock Read (a fájl olvasásvédett), Lock Write (a fájl írásvédett), és Lock Read Write (megakadályozza a fájlhozzáférést).
Fájlszám: 0 és 511 közötti egész kifejezés, amely a szabad adatcsatorna számát jelzi. Ezután a fájl eléréséhez az adatcsatornán keresztül átadhatja a parancsokat. A fájlszámot a FreeFile függvénynek kell meghatároznia közvetlenül az Open utasítás előtt.
AdathalmazHossza: A közvetlen elérésű fájlok esetén a rekord hossza.
Csak az Open utasítással megnyitott fájl tartalmát módosíthatja. Ha egy már megnyitott fájlt próbál megnyitni, akkor egy hibaüzenet jelenik meg.
Példa:
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, "Ez egy szövegsor"
Print #iNumber, "Ez egy másik szövegsor"
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