Открытие файла
Произвольный доступ
Запись в файл последовательного доступа
В VB для записи информации в файл используются инструкции Print # и Write #.
Инструкция Print # функционирует почти так же, как ее "коллега" для экрана, с той лишь разницей, что данные не выводятся на экран, а сохраняются в файле, открытом для записи или добавления. Для вывода информации в последовательный файл используется инструкция:
Print#НомерФайла, [ (Spc(n) / Tab[(n)])] [Выражение] [ , или ;]
Print # - обеспечивает вывод в последовательный файл в формате дисплея (т.е. аналогично выводу на печать, например, на форме).
Выражение - выражение, значение которого записывается в файл.
Если выражения разделяются «;», то в файл они записываются без пробелов слитно.
Если выражения разделяются «,», то в файл они записываются в фиксированные зоны длиной 14 символов (зонный формат).
Если в конце выражения не стоит «;» или «,», то выведенная в файл строка дополняется символами<CR>, обозначающими переход к началу строки (ASCII-код равен 13), и <LF>, обозначающими переход на другую строку (ASCII-код равен 10). Таким образом, каждому значению соответствует одна запись или одна строка при выводе в формате дисплея.
Spc(n) и Таb(n) определяют соответственновставку n пробелов между выводимыми выражениями и табуляцию на n колонокперед списком выражений.
Примеры
Print #fh, Text1.Text
Print #fh, "Фрагмент 1", " Фрагмент 2"
Print #fh, "Это составляет "; "единое целое"
Инструкция Write # имеет такой же синтаксис, что и Print #. Отличие состоит только в форматировании вывода. Если Print # сохраняет данные в виде обычного текста, то Write # заключает текстовые строки в кавычки, а цифры выводятся без кавычек:
Print #fh,”Москва”, ”Киев”, 85
‘ в файле будет: Москва Киев 85
Write #fh, “Москва”,”Киев”, 85
‘ в файле будет: “Москва”, “Киев”, 85
Данные, сохраненные с помощью инструкции Write #, можно считать инструкцией Print #.
Для удаления с дискового пространства неиспользуемого файла используется инструкция
KillИмяФайла
гдеKill – зарезервированное слово.
В отличие от последовательного доступа, при котором записи не структурированы, произвольный доступ предполагает, что записи имеют постоянную структуру, а следовательно и одинаковую длину. Это позволяет считывать данные в произвольном порядке. Обычно эти данные имеют пользовательский тип.
Файл произвольного доступа должен быть открыт инструкцией Open.
Open ИмяФайла For Random [AccessДоступ] [Блокировка] As [#] НомерФайла [Len = ДлинаЗаписи]
Параметр Len определяет длину записи. Если это значение меньше, чем реальная длина записи, то возникает ошибка, если больше - то при записи файла используется больше дискового пространства, чем необходимо.
Параметр Access позволяет задать права доступа к открываемому файлу:
Доступ | Пример |
Без указания | Ореn “Date.dat” For Random As НомерФайла |
Чтение (Read) | Ореn “Date.dat” For Random Access Read As НомерФайла |
Запись (Write) | Ореn “Date.dat” For Random Access Write As НомерФайла |
Чтение и запись (Read Write) | Ореn “Date.dat” For Random Access Read Write As НомерФайла |
Если права доступа не указаны, то по умолчанию используется Read Write.
Обычно с файлами с произвольным доступом пользуются многие приложения и многие пользователи при работе в сети. Для обеспечения целостности данных при коллективном использовании файла следует установить значение параметра блокировки, определяющего права доступа к открытому файлу. Этот параметр может принимать значения:
Shared
Файл может использоваться всеми процессами для считывания и записи.
Lock Read
Никакой другой процесс не может считывать данные из файла.
Lock Write
Никакой другой процесс не может записывать данные в файл.
Lock Read Write
Никакой другой процесс не может считывать или записывать данные.
Пример
Open "c:\ADDRESS.DАТ" For Random Access Write As 1 Len = 27