Студопедия
rus | ua | other

Home Random lecture






СД типа файл прямого доступа.


Date: 2015-10-07; view: 469.


СД типа последовательный файл.

 

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

Основные операции над СД типа последовательный файл:

1. инициализация;

2. обработка данных без их изменения;

3. модификация файла.

Инициализация файла:

1. присвоить файлу имя;

2. открытие нового файла (формируется буфер, и указатель принимает значение 0);

3. подготовка данных;

4. запись компоненты (указатель перемещается на 1);

5. закрытие файла (формируется маркер конца файла).

Обработка данных:

1. задание имени файла;

2. открыть сформированный файл (с помощью процедуры Reset);

3. прочитать данные, сделать обработку;

4. закрыть файл.

Модификация файла (добавление новых компонент, изменение существующих компонент):

1. присвоить имя;

2. открыть файл;

3. установить указатель на следующую после последней записи компоненту (использовать для этого процедуру Seek (<файловая переменная>, FileSize(<файловая переменная>)));

4. подготовка данных;

5. запись;

6. закрыть файл.

 

 

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

Основные операции над СД типа последовательный файл:

1. инициализация;

2. обработка данных;

3. модификация..

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

Обработка данных:

1. присвоить файлу имя;

2. открыть сформированный файл;

3. запросить ключ;

4. установить указатель с использованием информации о нахождении ключа;

5. прочитать;

6. закрыть файл.

Модификация (изменение записи):

1. присвоить имя;

2. открыть сформированный файл, запросить ключ;

3. подвести указатель к нужной записи;

4. обработать компоненту;

5. опять подвести указатель к нужной компоненте;

6. записать;

7. закрыть файл.

В более сложном случае:

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

Пример: Имеем g=6, n=13, где g – номер класса (g=1, 2,…, 10), n – номер по списку в журнале (n=1, 2,…,25). K = 100g + n (n = k – 100g)

Ak = A0 + 25(g – 1) + n – 1 = A0 + 25g – 25 + n – 1 = A0 + 25g – 26 + k – 100g = A0 – 75g – 26 + k = A0 – 75[k/100] – 26 + k = Ф(k) – функция отображения.

2) Если функцию отображения Ф(k) найти не удается, то нужно провести индексирование. Функция Ф(k) строится с помощью таблицы.

 
 

 


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

Использование справочника является единственной возможностью ускорения поиска в неупорядоченном файле. Последовательный перебор всех записей неупорядоченного файла заменяется быстрым поиском в упорядоченном справочнике. Размер таблицы меньше размера файла, следовательно таблицу удобнее сортировать. Таблица запоминается вместе с файлом. Отображение идет в отношении 1:1.

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

           
   
 
 
   
 

 



<== previous lecture | next lecture ==>
Накопители на магнитных дисках. | СД типа индексно-последовательный файл.
lektsiopedia.org - 2013 год. | Page generation: 0.124 s.