Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры данных_файлы.doc
Скачиваний:
3
Добавлен:
17.04.2019
Размер:
166.91 Кб
Скачать

Организация файловой структуры

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

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

Например, в программе с почтовым перечнем имеется три записи:

Имя/адрес

Адрес

Город

Область

Код

Класс

Вклад

Иванов Петр

Ул. Кирова

Воронеж

Воронежская

394000

73

0.000

Петров Иван

Ул. Газовая

Курск

Курская

342000

58

500.000

Сидоров Леонид

Ул. Ленина

Саратов

Саратовская

350000

81

0.000

Каждая запись состоит из 7 полей. Обычно делается различие между числовыми и цепочными полями. В этом примере три поля - числовые, остальные цепочные.

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

  • Создание.

  • Чтение, удаление и обработка записей.

  • Добавление записей.

Максимальная длина записи 32767 байт.

Последовательные файлы

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

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

OPEN “Filename$” [For режим] As [#] номер файла% [Len = дл.записи%]

Режим – Append, Binary, Input, Output и Random

  1. Открыть файл (команда OPEN) в режиме записи (режим OUTPUT - запись в начало или режим APPEND - дозапись в конец).

Несколько слов об операторе OPEN. Оператор OPEN выполняет подготовительную работу для последующих операций ввода/вывода записей. Он заполняет блок управления данными, в него система помещает № файла и номер устройства, с которым будет работать система, резервирует область оперативной памяти для организации процессов буферизации в процессах ввода/вывода, определяет организацию данных в файле и режим его обработки.

OUTPUT: если файл не существует, то создается новый файл, в противном случае он стирается и затем файл обрабатывается как новый.

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

RANDOM – файл прямого доступа. Этот режим устанавливается по умолчанию.

Длина_записи% - (по умолчанию –128 байт). Для ФПД – 32767 байт.

2. Вывести данные в файл, используя операторы WRITE #, PRINT#, PRINT # USING.

После завершения работы с файлом закрыть его оператором CLOSE.

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

Input “Введите имя файла”; n%

Open “n%” For Output as #1

Print #1, ”Это хранится в файле”

Close #1

Open “n%” For Input as #1

Input #1, a$

Print “ Чтение из файла:”; a$

Close #1

Оператор Close. Закрывает один или несколько файлов или устройств.

Формат записи:

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

где

номер файла% - номер открытого файла или устройства.

CLOSE без аргументов закрывает все открытые файлы и устройства.

Для считывания последовательного файла выполняется следующая последовательность действий:

1. Открыть файл (оператор OPEN) в режиме чтения (режим INPUT).

2. Считать данные из файла, используя операторы INPUT #, INPUT$, LINE INPUT #.

3. После завершения работы с файлом закрыть его оператором CLOSE.

Недостаток этого метода заключается в последовательном просмотре записей файла, начиная с первой записи. Т.е. если Вы хотите добраться к последней записи файла, состоящего из 23000 записей, то Вы должны прежде просмотреть предыдущие 22999 записи.

Последовательные файлы, поэтому, лучше всего подходят для решения задач последовательной обработки данных или когда все данные могут храниться при обработке в памяти ЭВМ. Это позволит Вам целиком считать весь файл (например в массив), быстро откорректировать его, а затем записать обратно на диск. Но в то же время это метод позволяет создавать записи переменной длины, что бывает иногда очень важно. При использовании Visual Basic могут создаваться два типа последовательных файлов:

  1. последовательный файл с ограниченным полем записи, где каждое поле в каждой строке файла ограничивается специальным знаком;

  2. файлы с неограниченным размером полем записи. Эти типы создаются операторами WRITE # и PRINT # соответственно. Способ чтения из этих файлов одинаковый