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.

Jegyzet ikon

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