Спонсор: Microsoft
Опубликован: 04.07.2006 | Доступ: свободный | Студентов: 5447 / 624 | Оценка: 4.11 / 3.96 | Длительность: 11:08:00
Лекция 3:

Работа с устройствами, папками, файлами

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Работа с файлами: запись данных в файл, чтение из файла

Запись/чтение данных из приложения в файл проводится через коммуникационные каналы ввода/вывода. При открытии файлов им ставятся в соответствие каналы, имеющие номера. Есть ограничения на число открытых файлов. Функция FreeFile () возвращает номера свободных каналов (их можно использовать для открытия файлов).

Рассматриваются следующие типы доступа к файлам: последовательный, произвольный, двоичный

Последовательный (Sequential) доступ

При последовательном доступе записи считываются последовательно одна за другой; доступ применяется в основном при работе с текстовыми файлами. Сначала используется инструкция Open - открыть файл, синтаксис:

Open путь_имя_файла For Input |Output | Append [Share] As [#]номер_файла

  • путь_имя_файла - путь и имя файла,
  • Input - открыть файл для чтения,
  • Output - открыть файл для записи,
  • Append - открыть файл для добавления в него записей,
  • As [#]номер_файла - присваиваемый номер; открытый файл после работы с ним должен быть закрыт и тот же самый номер может быть использован снова.

Инструкция Close [[#]номер_файла, [#]номер_файла :] используется для закрытия файла. Для записи/чтения используются инструкции Write/Input:

  • Write #1, "A Happy New Millennium !!!", " : ", - запись данных, стоящих после запятой,
  • Input #1, a1, a2, : - чтение данных из файла (a1, a2 : - переменные, разделeнные запятыми, в которые читаются данные из файла).

Input не позволяет считывать данные в элемент управления. В качестве переменных можно использовать элементы массива. Для записи может использоваться также инструкция:

Print #1, "A Happy New Millennium !!!", " : ".

Произвольный (Random) доступ

Этот вид доступа предполагает, что файл имеет постоянную структуру. В начале работы используется инструкция Open:

Open имя_файла For Random [Access - дост][Lock] As [#]ном_файла [Len = длина записи]

  • имя_файла - имя файла,
  • Access - доступ задаeт права доступа к файлу. Ниже даны типы доступа и соответствующие примеры:
  • чтение - Open "file1.dat" For Random Access Read As #1,
  • запись - Open "file1.dat" For Random Access Write As #1,
  • чтение и запись -

    Open "file1.dat" For Random Access Read Write As #1,

  • без указания - Open "file1.dat" For Random As #1,
  • Lock определяет права доступа к открытому файлу пользователя/процесса при коллективном использовании:
  • Shared - все процессы могут писать в файл и считывать из файла,
  • Lock Read Write - запрет записи в файл и считывания из файла,
  • Lock Read - запрет считывания из файла,
  • Lock Write - запрет записи в файл,
  • As [#]номер_файла - номер файла,
  • Len определяет длину записи; если значение Len меньше реальной длины записи, то возникает ошибка.

Инструкция Close [[[#]номер_файла][, [#]номер_файла] :] используется для закрытия файла.

Для записи/чтения используются инструкции Put/Get:

Put [#]номер_файла, [номер записи] имя_переменной

  • номер_файла - номер открытого файла,
  • номер записи - номер записи, в которую начинается запись данных (записи нумеруются с 1. Если "номер записи" отсутствует, то подразумевается номер следующей записи; его пропуск указывается наличием вместо него запятой, например: Put #2,,),
  • имя_переменной - имя переменной, содержащей данные, которые будут записаны в файл,

Get [#]номер_файла, [номер записи] имя_переменной

  • номер_файла - номер открытого файла,
  • номер записи - номер записи, с которой начнeтся считывание данных,
  • имя_переменной - имя переменной, в которую проводится считывание.

Двоичный (Binary) доступ

Двоичный доступ в отличие от произвольного возможен не к определeнному набору данных, а к отдельному байту.

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
антонина квасова
антонина квасова
Владимир Муратов
Владимир Муратов

По курсу Visual Basic где же взять материалы для практических работ? 

Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва