Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по инфе, лучше пересмотреть их!!!!.docx
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
127.67 Кб
Скачать

22.Виды файлов. Файлы последовательного доступа.

Последовательный файл состоит из записей, доступ к которым осуществляется последовательно, т.е. n-я запись следует за (n - 1)-ой как при формировании файла, так и при считывании из него.

Создание последовательного файла включает следующие шаги:

  • открытие файла (оператор OPEN);

  • вывод данных в файл (операторы PRINT#, WRITE#, или PRINT# USING);

закрытие файла (оператор CLOSE).

Считывание из последовательного файла включает следующие шаги:

  • открытие файла;

  • ввод данных из файла (операторы INPUT#, INPUT$, LINE INPUT#);

  • закрытие файла.

Оператор OPEN - подготавливает файл для чтения из файла (INPUT) или записи в файл (OUTPUT, если создается новый файл, APPEND, если добавляются записи в уже существующий файл).

INPUT

OPEN имя файла FOR OUTPUT AS # номер файла

APPEND

Оператор CLOSE - закрывает файл, т.е. делает невозможным чтение или запись.

CLOSE [# номер файла]

Оператор CLOSE без параметров закрывает все открытые файлы. Единицей информации, которая передается при записи в файл или чтении из файла, является запись (логическая запись). Запись делится на поля. Каждое поле связано с одним элементом данных.

На устройствах последовательного доступа могут быть организованы файлы только последовательного доступа.

Файлы с переменной длиной записи всегда являются файлами последовательного доступа. Они могут быть организованы двумя способами:

1. Конец записи отличается специальным маркером.

2. В начале каждой записи записывается ее длина.

Обработка текстовых документов (файлы последовательного доступа).

Иногда от программы требуется обработка и хранение некоторой информации, однако использование баз данных является излишним (т.к. это приведет к усложнению программы, увеличению его размера и замедлению выполнения). В таком случае можно использовать текстовые файлы. Самый простой тип файла - текстовый файл последовательного доступа. Причем последовательный доступ означает, что считывание информации идет последовательно байт за байтом и порядок считывания изменить нельзя.

Для открытия файлов используется конструкция Open:

Open <имя_файла> For <режим> [Access <доступ>] [<блокировка>] As [#]<номер_файла>[Len=<длина_записи>]

<режим> - режим в котором открывается файл:

Append - для добавления в конец файла

Binary - для работы с файлом в бинарном режиме (см. ниже)

Input - для чтения файла (файл не перезаписывается)

Output - для вывода в файл с созданием или перезаписью файла

Random - для произвольного доступа (по умолчанию)

<доступ> - операции, которые можно проводить с файлом:

Read - можно только читать

Write - можно только записывать

Read Write - можно все

<блокировка> - тип блокировки файла:

Shared - другие процессы могут делать с файлом все, что угодно

Lock Read - блокировка чтения

Lock Write - блокировка записи

Lock Read Write - полная блокировка (другие процессы не могут даже открыть файл)

<номер_файла> - дальнейшая работа с этим файлом производится по номеру, под которым он открыт, причем под одним номером может быть открыт только 1 файл. Для получения свободного номера рекомендуется использовать функцию FreeFile (без параметров).

<длина_записи> - используется в файлах прямого доступа (см. ниже).

Если файл уже открыт или заблокирован другим процессом или произошла другая ошибка, Open генерирует ошибку (которую можно обработать с помощью OnError ...).

После того, как файл открыт, с ним можно начать работать.

Оператор Line Input #номер_файла, <строковая_переменная> позволяет считать следующую строку из файла. Достигнут ли конец файла, нужно применять функцию EOF(номер_файла).

Иногда необходимо считать не всю строку. В этом случае используется оператор Input # или функция Input.

Оператор Input # предназначен для файлов, в котором данные хранятся с разделителями:

«Строка», 100, #2002-10-10#

В следующей строке кода информация корректно считывается в соответствующие переменные:

Dim StringVar As String

Dim IntVar As Integer

Dim DateVar As Date

Input #1, StringVar, IntVar, DateVar

Другой способ считывания информации - использование функции Input (не путать с оператором Input #). Эта функция считывает указанное число символов в строковую переменную:

Input (<кол-во символов>,#номер_файла)

После работы с файлом его нужно закрыть с помощью оператора Close #номер_файла.

Для того чтобы записать что-нибудь в файл с последовательным доступом, необходимо воспользоваться операторами

Print # и Write #.

Оператор Print #номер_файла, <выражение> записывает <выражение> в файл в текущую позицию. Если в конце оператора стоит ‘;', то производится перевод на новую строку.

Оператор Write #номер_файла, <список_вывода> противоположен оператору Input # - т.е. выводит информацию в файл с разделителями.