Способы доступа к записям файла

Работа с файлами и папками

. . .

. . .

. . .

. . .

. . .

ReDim имя_массива(размерность_1) as <тип> 'определена размерность массива

ReDim Preserve имя_массива(размерность_2) as <тип> 'переопределена 'размерность массива с 'сохранением данных

ReDim имя_массива(размерность_3) as <тип> 'переопределена размерность 'массива без сохранения данных

Erase имя массива 'освобождена память, выделенная под массив

Рис. 4.15. Операции по управлению памятью, выделенной под динамический массив

На рис. 4.15 описан локальный массив, но он может быть и глобальным. Переопределение объема памяти производится оператором ReDim. Слово Preserve предписывает сохранить данные, записанные в массив. Команда Erase освобождает память, выделенную под массив.

Размерность массива (размерность_1, размерность_2 и т.д.), как обычно, записывается в виде low_index to high_index или списка подобных конструкций, разделенных запятыми, в которых low_index и high_index – наименьшее и наибольшее значения индексов. Размер массива "размерность_2" больше "размерности_1", а "размерность_3" может быть и больше, и меньше "размерности_2".

Файл является важнейшим средством хранения информации самого различного назначения и представляет собой совокупность данных, объединенных для хранения и обработки и имеющих имя для обращения к ним.[9]

Работа с файлами может рассматриваться в двух направлениях – операции с файлами как целыми объектами (создание, удаление, перемещение, переименование и т.д.) и операции на уровне записей, т.е. изменение содержания файла.

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


Как известно файл состоит из множества записей, между которыми могут быть, но необязательно, четкие границы. Текущая (обрабатываемая) запись отмечается специальным указателем файла. Длина записи может быть фиксированной, но возможны варианты переменной, и даже неопределенной, длины записей. Эти особенности файлов порождают и ряд способов доступа к записям.

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

По способу доступа различают файлы:

· последовательного доступа

· прямого доступа,

· бинарные файлы.

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

Эти файлы обычно имеют записи переменной длины, состоящие из одной или нескольких компонент, причем в конце каждой записи имеется признак ее окончания в виде символов "перевод строки" и "возврат каретки" принтера. Указатель файла в этом случае может переходить последовательно с записи на запись только по границам записей, но не может вставать сразу на нужную запись. За один сеанс работы возможно только чтение информации или только ее запись. Модель такого файла показана на рис. 4.16,а. Записи файла последовательного доступа подобны кружкам детской пирамиды, нанизанным на центральный стержень. Для того, чтобы снять нужный кружок (запись) для обработки, необходимо снять все предшествующие кружки. Указатель файла во время движения последовательно встает против каждого кружка.

 
 

 


указатель файла

 

 

а)

  указатель файла   б)
Рис. 4.16. Модели файлов последовательного (а) и прямого (б) доступа

 

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

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