Работа
с файлами
Наверно
не существует такой программы,
которая б не использовала во
время своей работы файлы. Сегодня
я расскажу о том, как работать с
файлами в среде Visual Basic. Для начала
разберемся, на какие типы
разделяются файлы. Всего типов
три: это файлы последовательного
доступа (на пример текстовые
файлы блокнота), произвольного
доступа (файлы баз данных,
например Access’а)
и бинарные файлы, которые по-русски
называются двоичными (файлы
рисунков, мультимедиа файлы,
приложения и т.д.). В данной статье
разберемся с файлами
последовательного и
произвольного доступа (бинарные
оставим на потом).
Начнем, пожалую, с
последовательных. Что мы можем
делать с ними? Во первых
записывать и считывать. Для
начала, ради удобства, объявим в
разделе General
Declarations
константу File
которой присвоим значения пути и
имени файла:
Private Const File As String = "C:\Windows\Рабочий
Стол\file1.tmp"
Можно
выбрать другой файл, кому как
нравится. Для открытия файла
существует оператор Open.
Открывать последовательные файлы
можно для чтения, записи или
добавления данных:
Open File For Input as #1
'Чтение
Open File For Output as #1
'Запись
Open File For Append as #1
'Добавление
#1 -
специальный идентификатор (может
принимать любое целочисленное
значение), который мы в дальнейшем
будем использовать для обращения
к файлу.
Допустим, мы окрыли файл для
чтения (Input). Считывать можно
побайтно или построчно. Для
побайтного считывания служит
функция Input(). Синтаксис функции
таков: Input (количество_байт,
идентификатор_файла). Например,
для считывания всего файла нужно
писать так:
a=Input(FileLen(File), #1)
Функция
FileLen()
возвращает длину файла (или
количество символов в файле).
Возникает вопрос: количество байт
мы указали, а с какого байта
начинается считывание? Это
зависит от того, сколько до этого
байт мы считали. Например, сразу
после открытия считывание будет
происходить с первого, если мы уже
считали, допустим, десять байт, то
следующий раз считывание
начнется с одиннадцатого байта.
Можно вручную переходить на какую-либо
позицию в файле, для этого
существует оператор
Seek,
синтаксис его таков: Seek идентификатор_файла, номер_байта.
Например:
Seek #1,
10
После
данного скрипта считывание будет
происходить с десятого байта.
Для построчного считывания
существует оператор LineInput.
Синтаксис:
LineInput file_num, var. File_num – идентификатор файла; var – переменная в которую
записываются считанные данные
Пример:
Line
Input #1, a
В
данном случае считываемая строка
записывается в переменную а. И
последнее: если файл, который вы
пытаетесь открыть, не существует
– программа выдаст ошибку.
Теперь откроем тот же файл, но для
записи. Внимание! Если файл уже
создан, и вы открываете его для
записи (Output),
то все что ранее в него было
записано теряется. Будьте
внимательны. А если файла не
существует, тогда он создастся
автоматически. Для записи в файл
существует оператор Print
номер_файла, выражение
(не путать с одноименным
методом).
Кстати,
данный
оператор записывает построчно, то
есть каждый раз добавляет после выражения
перенос строки (Chr(13)
& Chr(10)
или
vbCrLf).
Пример:
Print #1,
"Это первая строка"
Print #1,
"Это вторая строка "
Print #1,
"Это третья строка "
Print #1,
"Это последняя строка "
Данный
пример добавляет в файл четыре
строчки.
Способ открытия Append отличается от Output
тем,
что, открывая
файл, он не стирает
его содержимое, в остальном все
так же.
В
принципе, я рассказал все
основные приемы для работы с
последовательными файлами. В
следующей статье я расскажу о
файлах произвольного доступа.
Продолжение следует…
Вопросы и
предложения пишите на E-Mail
или оставляйте сообщение в гостевой
книге.
Назад к
списку примеров
|