Open Statement

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