Module
Contents
Index 🔎︎

# Open Statement

Avab andmekanali

## Süntaks:

    Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]

## Parameetrid:

FileName: Name and path of the file to open. If you try to read a file that does not exist (Access = Read), an error message appears. If you try to write to a file that does not exist (Access = Write), a new file is created.

Mode: võtmesõna, mis määrab faili režiimi. Sobivad väärtused on Append (lisa jadafailile), Binary (andmetele pääseb juurde lausete Get ja Put abil baitide järgi), Input (avab andmekanali lugemiseks), Output (avab andmekanali kirjutamiseks) ja Random (redigeerib suhtelisi faile).

IOMode: võtmesõna, mis määrab juurdepääsutüübi. Sobivad väärtused on Read (kirjutuskaitstud), Write (ainult kirjutamiseks), Read Write (mõlemad).

Protected: võtmesõna, mis määrab faili turbeoleku pärast avamist. Sobivad väärtused on Shared (muu rakendus võib faili avada), Lock Read (fail on lugemiseks kaitstud), Lock Write (fail on kirjutuskaitstud), Lock Read Write (juurdepääs failile on keelatud).

FileNumber: vaba andmekanalit tähistav suvaline täisarvavaldis vahemikus 0 kuni 511. Seejärel saad failile juurdepääsemiseks edastada käsud selle andmekanali kaudu. Faili number peab olema funktsiooni FreeFile abil määratud vahetult enne lauset Open.

DatasetLength: määrab juhupääsuga failide korral kirjete pikkuse.

Saad muuta ainult lause Open abil avatud failide sisu. Kui proovid avada faili, mis on juba avatud, kuvatakse veateade.

## Näide:

    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, "See on rida teksti"

        Print #iNumber, "See on veel üks rida teksti"

        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