11. Файлы с последовательным и произвольным доступом.
Последовательные файлы представляют собой текстовый файл. Данные в последовательном файле хранят ряд записей. Длина каждой записи не фиксирована, а определяет ее содержимое. Конец одной записи и начало другой отмечается символом CRLE(возврат каретки). Единственный символ в строке обозначает, пустую запись. Последовательные файлы называются так, потому что их записи должны считаться последовательно от начала файла.
Файл с произвольным доступом сохраняет данные как ряд записей фиксированного элемента. Размер каждой записи определяется в момент создания файла. Записи последовательно нумеруются, начиная с 1. Файл с произвольным доступом разрешает непосредственный доступ к каждой записи по ее номеру. Каждая запись в файле с произвольным доступом содержит фиксированное количество файлов или символов. Каждая запись содержит 1 или больше полей и каждое поле имеет фиксированную длину.
Использование файлов с последовательным доступом:
Для записи данных в последовательный файл используется оператор Write # filenum list
Если аргумент list не задан, то в файл записывается пустая строка. Оператор Write автоматически вставляет обязательные разделители между полями, запятые и кавычки. Для чтения данных из последовательного файла используется оператор Input # filenum, Varlist-список переменных. Input-читает данные из файла последовательно.
Если читаются данные переменного типа строки, то конец поля отмечается одним из последовательных файлов: Запятая, если поле не начинается с двойных кавычек, символ возврата каретки CR/LF. Если оператор Input читает данные в числовую переменную конец поля отмечается запятой одним или большим количеством пробелов или символов CR/LF (конец строки).
Использование файлов с произвольным доступом:
Состоит из записей:
Отличие состоит в том, что они состоят (записи одинаковой длины и программа отличает одну запись от другой по ее положению в файле). Записи последовательно пронумерованы, начиная с единицы, а максимальное количество записей 2147483647.
Структура файла с произвольным доступом определяется при его создании. Обычно это делается при помощи ссылки на определенный пользователем тип:
User defined type - UDT, представляет собой структуру, содержащую 2 или более элемента.
Для записи данных с произвольным доступом используется оператор Put # fn recnum Item.
Recnum-необязательный элемент, определяющий номер записи в файле, которые должны быть сохранены.
Put # fn,
Our employees (2)
Для записи данных существующих файлов без перезаписи содержимого следует записи добавлять в конец файла. Для этого используется оператор Lot, тогда:
NumRecords= Lot (fn)/Len (Item)
Put # fn, NumRecords+1, Item
Для чтения данных из файла с произвольным доступом используются операторы Get # fn, recnum, item.
Некоторые способы работы с файловыми указателями:
Seek (fn)-возвращает текущую позицию файлового указателя
Seek fn, position-устанавливает указатель на указанную позицию
Loc (fn)-возвращает номер последней записи прочитанной или записанной. Если файл только что открыт, возвращает 0.