Contents
Index 🔎︎

# Open Statement

Открывает канал данных.

## Синтаксис

    Open ИмяФайла As String [For Режим] [Access Режим_ввода/вывода] [Защита] As [#]НомерФайла As Integer [Len = ДлинаБД]

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

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.

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

Режим_ввода/вывода. Ключевое слово, которое определяет тип доступа. Допустимые значения: Read (только для чтения), Write (только для записи), Read Write (и то, и другое).

Защита. Ключевое слово, которое определяет статус безопасности файла после открытия. Допустимые значения: Shared (файл может быть открыт другими приложениями), Lock Read (файл защищён от чтения), Lock Write (файл защищён от записи), Lock Read Write (доступ к файлу запрещен).

НомерФайла. Любое целое число от 0 до 511, указывающее номер свободного канала данных, который может быть использован для доступа к файлу посредством различных команд. Номер файла должен определяться непосредственно перед инструкцией Open с помощью функции FreeFile.

ДлинаЗаписи: устанавливает длину записи для файлов с произвольным доступом.

Файл должен быть открыт инструкцией 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