Работа с файлами
Очень часто возникает необходимость считать или записать некоторую информацию на долговременное хранение. Обычно для этого используются файлы на жестком диске. Поэтому в Visual Basic включены средства для работы с внешними файлами, позволяющие создавать их, открывать для работы и осуществлять ввод-вывод данных. Файлы Visual Basic делятся на три группы:
Файлы последовательного доступа. Файлы этой группы могут открываться в режиме чтения (Input), записи (Output) или присоединения (Append). Специальных средств поиска для них нет. Для того, чтобы получить данные из такого файла, надо его открыть и прочесть последовательно все данные до нужного места. В файл можно записывать данные разных типов.
Файлы произвольного доступа. Файлы этой группы состоят из записей постоянной длины, что позволяет организовывать быстрый поиск данных и их локальное изменение внутри файла без его переписывания. В таких файлах чаще всего хранят записи пользовательского типа, все поля которых имеют одинаковую длину. возможен прямой доступ к элементу по его номеру. Разрешается одновременное выполнение чтения и записи в файл.
Бинарные файлы или файлы быстрого доступа.Файлы этой группы позволяют считывать и записывать информацию побайтно, используются обычно для хранения графической информации. Во время одной операции может быть записано или прочитано произвольное число байт.
Файлы перечисленных типов открываются и создаются оператором Open, который вызывается так:
Open имя_файла For режим [Access доступ] [блокировка] As [#] номерФайла [Len=длина заиси]
Значения параметров:
Имя_файла – строковое выражение, задающее имя открываемого (создаваемого) файла; в него также может входить путь.
Режим – ключевое слово, которое для файлов последовательного доступа может принимать одно из значений: Input (ввод). Output (вывод), Append (присоединение). Для файлов с произвольным доступом в качестве режима необходимо указать Random, а для бинарных файлов – Binary.
Параметр доступ необязателен. Он ограничивает набор операций, выполняемых над открываемым файлом; возможные значения: Read (только чтение), Write (только запись), ReadWrite (чтение и запись).
Параметр блокировка позволяет ограничить набор операций над файлом другими приложениями; возможные значения: Shared (без всяких ограничений), Lock Read (запрещено чтение), Lock Write (запрещена запись), Lock Read Write(запрещено чтение и запись)
Параметр номер файла – целое число в интервале от 1 до 511, идентифицирующее файл для других операций.
Параметр длина записи – число не более 32767 – обязателен для файлов произвольного доступа и задает для них длину одной записи файла в байтах. Для последовательных необязателен.
Если открываемый в режиме вывода файл последовательного доступа уже существует, то его содержимое будет потеряно.
Пример
Рассмотрим пример открытия файла для чтения и создания файла для записи.
Создадим следующую форму. Она позволяет менять текущий диск и папку и выбирать файл. По нажатию кнопки Открыть содержимое выбранного файла выводится в текстовое поле. По нажатию кнопки Сохранить содержимое текстового поля записывается в выбранный файл или в файл указанный в поле ввода рядом скнопкой.
Текст программы
Public q As String
Public ch As Boolean
Private Sub Command1_Click()’нажатие по кнопке Сохранить
If ch Then q = Dir.Path + "\" + FName.Text
If q <> "" Then
intf = FreeFile
Open q For Output As intf
Print #intf, Text1.Text
Close #intf
End If
End Sub
Private Sub Dir_Change()
File.Path = Dir.Path
End Sub
Private Sub Drive_Change()
Dir.Path = Drive.Drive
End Sub
Private Sub File_Click()
q = Dir.Path + "\" + File.FileName
End Sub
Private Sub FName_Change()
ch = True
End Sub
Private Sub open_Click()
If q <> "" Then
intf = FreeFile
Open q For Input As #intf
Label1.Caption = "Содержимое файла" + q
Text1.Text = Input$(LOF(intf), intf)
Close #intf
End If
End Sub