Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 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 >
Константин Новков
Константин Новков

Лекция 3: 2

Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox).

Не могу найти меню Разработать (Develop)>Links и т.д.

антонина квасова
антонина квасова