Съдържание
Индекс 🔎︎

# Оператор Open

Отваря канал за данни.

### Синтаксис:

    Open pathname For mode [Access io] [locking] As [#]filenum [Len=recLen]

### Параметри:

pathname: име и път на файла, който да бъде отворен. Ако се опитате да четете от несъществуващ файл (Access = Read), се показва съобщение за грешка. Ако се опитате да записвате в несъществуващ файл (Access = Write), се създава нов файл.

mode: ключова дума, указваща режима на работа с файла. Валидните стойности са: Append (добавяне към файл с последователен достъп), Binary (данните могат да се четат и записват на ниво байт с Get и Put), Input (отваря канал за данни за четене), Output (отваря канал за данни за записване) и Random (за редактиране на файлове с произволен достъп).

io: ключова дума, указваща вида на достъпа. Валидните стойности са: Read (само за четене), Write (само за запис), Read Write (и двете).

locking: ключова дума за защита на файла след отварянето му. Валидните стойности са: Shared (файлът може да бъде отварян от други приложения), Lock Read (файл е защитен срещу четене), Lock Write (файлът е защитен срещу записване), Lock Read Write (достъпът до файла се отказва).

filenum: целочислен израз със стойност от 0 до 511, представляваща номер на свободен канал за данни. Впоследствие можете да изпращате команди към този канал за данни, за да работите с файла. Файловият номер трябва да бъде определен с функцията FreeFile непосредствено преди оператора Open.

recLen: Задава дължината на записите за файлове с произволен (Random) достъп.

За да променяте съдържанието на файл, той трябва да е отворен с оператора Open. Ако се опитате да отворите файл, който вече е отворен, се показва съобщение за грешка.

### Пример:

    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, "Това е ред с текст"
        Print #iNumber, "Това е още един ред с текст"
        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