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