Tartalom
Index 🔎︎

# 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