- •24. Тип файл
- •3. Структурная организация
- •0. Определение типа
- •1. Множество значений
- •2. Множество операций
- •Физические и логические файлы
- •Виды файлов
- •Общие правила работы с файлами
- •24.4. Организация работы с файлами прямого доступа
- •Алгоритм сортировки файла прямого доступа Сортировка файла методом пузырька (обменная сортировка) Спецификация подпрограммы
- •Метод решения
- •Информационная модель
- •Программная модель
- •24.5. Организация работы с последовательными файлами
- •24.6. Разработка комплекса программ субд
- •Разработка подпрограммы для проверки существования файла Спецификация
- •Метод решения
- •Информационная модель
- •Информационная модель
- •Программная модель
- •Реализация функции просмотра бд Постановка задачи
- •Метод решения
- •Информационная модель
- •Программная модель
- •Реализация функции сортировки бд Постановка задачи
- •Метод решения
- •Информационная модель
- •Программная модель
- •Реализация функции выборки из бд Постановка задачи
- •Метод решения
- •Информационная модель
- •Программная модель
- •Текст файла с общими описаниями
- •24.7. Организация работы с текстовыми файлами
- •Процедура записи в текстовый файл write
- •Правила выполнения обращения к процедуре write
- •Правила преобразования последовательности символов при записи в файл
- •Вариант 1: второй параметр любого целого типа
- •Вариант 2: второй параметр любого вещественного типа
- •Вариант 3: второй параметр типа char
- •Процедура чтения из текстового файла read
- •Правила выполнения процедуры read
- •Вариант 1: второй параметр числового типа (любого целого, либо любого вещественного)
- •Вариант 2: второй параметр литерного типа char
- •Вариант 3: второй параметр любого строкового типа
- •Процедура пропуска очередного признака конец строки readln
- •Пример чтения из текстового файла
- •Функции проверки местонахождения буфера
- •Процедура записи содержимого буфера в файл
- •24.8. Стандартные текстовые файлы input,output
- •24.9. Обработка компилятором обращений к процедурам чтения и записи
- •24.10. Общие процедуры работы с файлами и каталогами
Программная модель
type tf=file of integer;
procedure sortpuz(name:string);
var f:tf;
i,nkz:longint;
r1,r2:integer;
flag:boolean;
begin
assign(f,name);
reset(f);
nkz:=filesize(f);
repeat
flag:=false;
for i:=0 to nkz-2 do
begin
seek(f,i);
read(f,r1,r2);
if r2>r1 then
begin
seek(f,i);
write(f,r2,r1);
flag:=true
end
end;
nkz:=nkz-1
until not flag;
close(f);
end;
24.5. Организация работы с последовательными файлами
Под последовательными файлами понимают такие файлы, в которых искать необходимую информацию можно только последовательно читая компоненты файла, начиная с начала файла, а записывать новые компоненты только в конец файла. Причем из файла можно либо только читать информацию, либо только записывать информацию.
В последовательных файлах не существует понятия номер компонента файла. Поэтому при работе с последовательными файлами можно использовать все процедуры и функции, определенные для файлов прямого доступа, за исключением процедуры установки на компонент файла seek, функций, связанных с определением номера и количества компонентов filesize и filepos, процедуры усечения файла truncate.
24.6. Разработка комплекса программ субд
Комплекс программ системы управления базами данных предназначен для создания, ведения и использования баз данных пользователями. Программы – это реализация функций, возложенных на СУБД. В простейшем случае база данных хранится в виде файла прямого доступа. В качестве примера базы данных возьмем базу данных с информацией об учащихся:
фамилия (строка из 20 символов);
дата рождения (день, месяц, год);
год поступления в учебное учреждение (целое без знака);
средний балл за период обучения (вещественное число).
База данных хранится в файле прямого доступа, компонентами файла являются данные типа запись:
type tdata=record
d:1..31;
m:1..12;
g:word
end;
{тип компонента файла}
tinfstud=record
fam:string[20];
dr:tdata;
gp:word;
sb:real
end;
{файловый тип}
tfileinfstud=file of tinfstud;
Реализуем следующие функции базы данных:
создание БД (создание файла прямого доступа);
просмотр БД на экране (вывод на экран содержимого файла прямого доступа);
сортировка БД (сортировка записей файла прямого доступа по какому-то полю записи);
выборка из БД (поиск и выборка информации из файла с БД и создание нового файла прямого доступа с выбранными записями).
Обычно каждая функция БД реализуется в виде отдельной программы, выбор необходимой пользователю функции реализуется с помощью программы-меню. В данном примере реализуем только функции БД в виде отдельных программ и определим технологию работы с ними. Все описания поместим в отдельный текстовый файл (дадим ему имя FILE0.PAS), который будем подключать к тексту каждой программы с помощью директивы компилятору – включить текстовый файл {$I <имя файла>}. В этом же текстовом файле разместим подпрограмму проверки существования файла, так как эта подпрограмма потребуется во всех программах комплекса.
Разработка подпрограммы для проверки существования файла Спецификация
Назначение: проверка существования физического файла вне зависимости от его вида
Имя: FS
Вид: процедура
Перечень параметров:
Таблица 24.3. Перечень параметров
Статус |
Назначение |
Имя |
Тип |
Вид |
Вход |
имя физического файла |
name |
string |
параметр-значение |
Возвращ. |
признак существования файла (true –файл существует, false – нет) |
fs |
Boolean |
- |
Заголовок подпрограммы: function fs(name:string):Boolean;