Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация работы с последовательными файламиСодержание книги Поиск на нашем сайте
Под последовательными файлами понимают такие файлы, в которых искать необходимую информацию можно только последовательно читая компоненты файла, начиная с начала файла, а записывать новые компоненты только в конец файла. Причем из файла можно либо только читать информацию, либо только записывать информацию. В последовательных файлах не существует понятия номер компонента файла. Поэтому при работе с последовательными файлами можно использовать все процедуры и функции, определенные для файлов прямого доступа, за исключением процедуры установки на компонент файла seek, функций, связанных с определением номера и количества компонентов filesize и filepos, процедуры усечения файла truncate. Разработка комплекса программ СУБД Комплекс программ системы управления базами данных предназначен для создания, ведения и использования баз данных пользователями. Программы – это реализация функций, возложенных на СУБД. В простейшем случае база данных хранится в виде файла прямого доступа. В качестве примера базы данных возьмем базу данных с информацией об учащихся: - фамилия (строка из 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 <имя файла>}. В этом же текстовом файле разместим подпрограмму проверки существования файла, так как эта подпрограмма потребуется во всех программах комплекса. Разработка подпрограммы для проверки существования файла Спецификация 1. Назначение: проверка существования физического файла вне зависимости от его вида 2. Имя: FS 3. Вид: процедура 4. Перечень параметров: Таблица 24.3. Перечень параметров
Метод решения В основу метода решения положено условие выполнения процедуры открытия существующего файла для работы reset(<илф>). Если физический файл соответствующий заданному логическому существует, то файл открывается для работы, если отсутствует, то возникает ошибка ввода-вывода. Поэтому метод решения следующий: 1) связываем физический и логический файлы assign(f, name), где f – имя логического нетипизированного файла. Нетипизированный файл позволяет сделать подпрограмму независимой от вида файла (но с таким файлом нельзя выполнять стандартные операции чтения и записи); 2) отключаем систему прерываний по ошибкам ввода-вывода {$I-}; 3) выполняем вызов процедуры reset(f); 4) включаем систему прерываний по ошибкам ввода-вывода {$I+}; 5) анализируем наличие ошибки при выполнении последней операции ввода-вывода. Это может быть только одна ошибка – перед выполнением процедуры reset физический файл, соответствующий логическому отсутствует. Если ошибка есть, то формируем результат функции false. Если ошибки нет, то формируем результат функции true и демонополизируем файл Информационная модель Таблица 24.4. Информационная модель
Текст подпрограммы function fs(name:string):boolean; var f:file; begin assign(f,name); {$I-} reset(f); {$I+} if ioresult<>0 then fs:=false else begin fs:=true; close(f) end end; Реализация функции создания БД Постановка задачи Создать файл прямого доступа с информацией об учащихся. Имя создаваемого физического файла определяет пользователь. Компоненты файла представляют собой записи типа tinfstud. Метод решения 1) получить от пользователя имя физического файла (namebd) для хранения базы данных; 2) если файл с таким именем существует, то сообщить об этом пользователю и прекратить выполнение программы 3) связать логический и физический файлы assign(fbd,namebd); 4) открыть файл прямого доступа в режиме создания нового файла 5) повторять до ответа пользователя не продолжать создание файла: a) ввод информации об очередном студенте (ввод записи r); b) запись информации в файл write(fbd,r); c) получение ответа на запрос – продолжать создание базы данных?[Y/N] 6) закрыть файл для работы close(fbd). Предложенный метод можно использовать и для создания последовательных файлов, так как никаких особенностей файлов прямого доступа не используется. Информационная модель Таблица 24.5. Информационная модель
Программная модель {программа создания базы данных (файл Z1.pas)} program z1; {$I FILE0.PAS} var otvet:char; begin writeln('Введите имя создаваемого файла с базой данных'); readln(namebd); if fs(namebd) then begin writeln('ОШИБКА!!! Файл с именем ',namebd,' уже существует'); halt end; assign(fbd,namebd); rewrite(fbd); repeat writeln('Введите информацию об очередном студенте?'); with r do begin writeln('Фамилия?'); readln(fam); writeln('День, месяц, год рождения, год поступления, средний балл ', 'для студента ',fam); readln(dr.d, dr.m, dr.g, gp, sb); write(fbd,r) end; writeln('Продолжать?[y/n/]'); readln(otvet) until (upcase(otvet)='N') or (otvet='т') or (otvet='Т'); close(fbd) end.
|
|||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-26; просмотров: 420; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.166.127 (0.009 с.) |