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

При последовательном доступе записи считываются последовательно одна за другой.

Информация в них сохраняется в текстовом формате (в виде цепочки кодов ASCII). Для того, чтобы создать последовательный файл необходимо: 1) открыть файл оператором OPEN для доступа к нему и вывода или дозаписи в него данных; 2) записать данные в файл операторами PRINT или WRITE; 3) закрыть файл оператором CLOSE. Для того, чтобы прочитать последовательный файл необходимо: 1) открыть его оператором OPEN для доступа к нему и вывода из него данных; 2) считать данные из файла в програму, используя INPUT, LINE INPUT# или INPUT#; 3) закрыть файл оператором CLOSE.
OPEN pathName FOR режим AS #номер_файла % ü pathName – полное имя файла; включает не только непосредственно название, но и название дискового устройства и директории, где находится или будет создан файл; ü режим – режим работы с данным файлом: Input — открыть файл для чтения, Output — открыть файл для записи, Append — открыть файл для добавления в него записей; ü номер_файла % (дескриптор) — целое число от 1 до 255; ü # — необязательный знак, который опережает номер файла.

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

WRITE # номер_файла %, [ список значений ] PRINT # номер_файла %, [ список значений ] ü список значений — список констант или/и переменных или/и выражений, значения которых записываются в файл

Выражения в списке разделяются запятой, пробелами или точкой с запятой. Если список значениай отсутствует, в файл будет занесена пустая строка.

Оператор WRITE. Разделителем в списке значений является запятая. Элементы списка заносятся в файл в одну текстовую строку. Символьные данные (String) записывают в кавычках. Эта команда сама заносит запятые между полями и более экономно размещает данные на носителях. Пасле записи последнего элемента строки автоматически записываются символы “возврата каретки” (13) и “переход на новую строку” (10).

Оператор PRINT. Разделителями в списке значений являются:

ü запятая — значения записываются в 14-символьные зоны вивода (после каждого данного автоматически заносится символ табуляции);

ü точка с запятой — значения записываются подряд, без промежутков между ними.

PRINT удобен для тщательного редактирования текста выходного файла, а WRITE лучше использовать в том случае, когда выходной файл будет использоваться дальше как входной для других программ.

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

Оператор CLOSE без параметра закрывает все файлы, открытые в этот момент в программе.

Читать данные можно различными способами:

ü с помощью операторов INPUT# и LINE INPUT#

ü с помощью функции INPUT

Каждая из функций записи работает в паре с определенной функцией чтения. Для Print # — это Input или Line input #, а для Write # — это Input#

LINE INPUT # номер_файла%, переменная ü переменная – переменная типа String. Оператор Line Input # посимвольно считывает всю строку данных из файла (до 255 символов) и помещает ее в строковую переменную. При этом разделителем строк в файле служит стандартный разделитель строк символ возврата каретки CHR(13) или последовательность символов возврата каретки и перевода строки CHR(13) + CHR(10); при этом в переменную varName эти разделители не вставляются.
INPUT # номер_файла%, список переменных ü список переменных – записаные через запятую переменные любого типа. Сначала считывается целая строка, а потом подстроки, разделенные разделителями-запятыми (соответствующие значения полей записи), помещаются в соответствующие переменные списка. Для корректной работы оператора строки файла должны иметь заданную структуру с разделителями. Если текст поля заключен в кавычки, эти кавычки при чтении файла отбрасываются, отбрасывается также запятая, разделяющая поля. Переменные, используемые в операторе, могут быть как строкового,типа так и числового.

Для того чтобы прочитать все данные из файла при помощи операторов Input # или Line Input #, необходимо организовывать циклическое считывание данных из файла, поскольку данные считываются этими операторами по строкам.

INPUT (n, # номер_файла %) ü n –число символов (байтов) для считывания ü переменная – переменная типа String

Необходимо иметь в виду,что функция INPUT требует знания количества считываемых символов. Поэтому для чтения данных из файла необходимо предварительно вычислить его длину при помощи функции FileLen. Переход на заданную позицию в файле можно организовать при помощи оператора Seek

Seek, # номер_файла %, position ü # номер_файла % — номер файла, аналогичный номеру файла в операторе Open; ü position — целочисленное выражение, которое задает позицию указателя в файле.

Позиционирование при этом выполняется посимвольно. Оператор Seek устанавливает указатель на необходимую позицию. Если после этого использовать функции считывания или записи, то действие этих функций будет выполняться, начиная с позиции указателя, найденого оператором Seek.

EOF (номер_файла) — возвращает "ІСТИНА" при достижении канца файла. LOF (номер_файла) – возвращает длину файла

ЗАДАНИЕ 16.1. Постановка задачи. СОЗДАЙТЕ ПРИЛОЖЕНИЕ, ДЕМОНСТРИРУЮЩЕЕ ЗАПИСЬ И ЧТЕНИЕ ИЗ ТЕКСТОВОГО ФАЙЛА «СВЕДЕНИЙ О СОТРУДНИКАХ» – СТРОК, КАЖДАЯ ИЗ КОТОРЫХ СОДЕРЖИТ ИДЕНТИФИКАЦИОННЫЙ НОМЕР, ФИО, ДАТУ РОЖДЕНИЯ И МЕСТО РОЖДЕНИЯ СОТРУДНИКА. СТРОКИ ОБРАЗУЮТ ТАБЛИЦУ, КОТОРУЮ НА ЭКРАННОЙ ФОРМЕ БУДУТ ИМИТИРОВАТЬ 4 ЭЛЕМЕНТА УПРАВЛЕНИЯ ComboBox (рис. 16.1), ОБРАЗУЮЩИЕ МАССИВ ОБЪЕКТОВ Combо(i), У КОТОРЫХ СВОЙСТВО Style ИМЕЕТ ЗНАЧЕНИЕ 1 – SimpleCombo.

Массив объектов — это группа объектов, имеющих одно имя(свойство Name ), тип и общую процедуру обработки. В массив может входить до 332768 объектов. Порядковый номер элемента называется индексом и записывается в скобках сразу после имени массива. Объекты, входящие в массив, имеют свойство Index. Это свойство равно порядковому номеру элемента массива. Использование массивов объектов часть позволяет значительно упростить программный код.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: