Оператор Open
Отваря канал за данни.
Синтаксис:
Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]
Параметри:
FileName: име и път на файла, който желаете да отворите. Ако се опитате да четете от несъществуващ файл (Access = Read), се показва съобщение за грешка. Ако се опитате да записвате в несъществуващ файл (Access = Write), се създава нов файл.
Mode: ключова дума, указваща режима на работа с файла. Валидните стойности са: Append (добавяне към файл с последователен достъп), Binary (данните могат да се четат и записват на ниво байт с Get и Put), Input (отваря канал за данни за четене), Output (отваря канал за данни за записване) и Random (за редактиране на файлове с произволен достъп).
IOMode: ключова дума, указваща вида на достъпа. Валидните стойности са: Read (само за четене), Write (само за запис), Read Write (и двете).
Protected: ключова дума за защита на файла след отварянето му. Валидните стойности са: Shared (файлът може да бъде отварян от други приложения), Lock Read (файл е защитен срещу четене), Lock Write (файлът е защитен срещу записване), Lock Read Write (дотъпът до файла се отказва).
FileNumber: целочислен израз със стойност от 0 до 511, представляваща номер на свободен канал за данни. Впоследствие можете да изпращате команди към този канал за данни, за да работите с файла. Файловият номер трябва да бъде определен с функцията FreeFile непосредствено преди оператора Open.
DatasetLength: Задава дължината на записите за файлове с произволен достъп.
За да променяте съдържанието на файл, той трябва да е отворен с оператора 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