Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОА Delphi формата А4.doc
Скачиваний:
7
Добавлен:
29.08.2019
Размер:
1.58 Mб
Скачать
  1. Работа с типизированными файлами.

Цель занятия: Обобщить умения и знания для работы с типизированными файлами.

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

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

Описание типизированного файла:

type

rec = record

s:string[20];

n:integer;

end;

var

f:file of rec;

v:rec;

Основные функции:

функция

описание

Read(f, v)

Читает данные v из типизированного файла f.

Write(f, v)

Записывает данные v в типизированный файл f.

Seek(f, n)

Смещает указатель файла f к требуемому компоненту: n – номер компонента файла. Первый компонент имеет номер 0.

Filesize(f)

Возвращает количество компонентов файла. Для перемещения указателя в конец файла необходимо записать: Seek(f, filesize(f))

ЗАДАЧА 1. Создать файл, в который была бы записана информация о студентах: фамилия, специальность и средний балл по предмету.

Для решения задачи необходимо:

-поместим на форму три поля ввода Edit1, три кнопки Button1, компонент OpenDialog1;

-в общей области опишем переменные:

type

rec = record

s:string[10];

s1:string[15];

n:integer;

end;

var

f:file of rec;

v:rec;

d,fname:string;

-напишем программы:

для создания файла:

procedure TForm1.Button1Click(Sender: TObject);

begin

OpenDialog1.title:='создание файла';

OpenDialog1.Filter := 'текстовые файлы|*.TXT';

If OpenDialog1.Execute and fileExsist(OpenDialog1.Filename) then

begin

AssignFile(f, OpenDialog1.FileName);

rewrite(f);

CloseFile(f);

if OpenDialog1.FileName<>'' then

begin

fname:=OpenDialog1.FileName;

end; end; end;

для открытия файла:

procedure TForm1.Button2Click(Sender: TObject);

begin

memo1.Enabled:=true;

OpenDialog1.title:='открытие файла';

OpenDialog1.Filter := 'текстовые файлы|*.TXT';

If OpenDialog1.Execute then

begin

if OpenDialog1.FileName<>'' then

begin

AssignFile(F, OpenDialog1.FileName); reset(F);

while (not eof(f)) do

begin

read(f,v); memo1.lines.Add(v.s+v.s1+inttostr(v.n));

end; CloseFile(f);

fname:=OpenDialog1.FileName;

end; end; end;

для добавления данных в файл:

procedure TForm1.Button3Click(Sender: TObject);

begin

AssignFile(F, fname); reset(f);

v.s:=edit1.Text;

v.s1:=edit2.Text;

v.n:=strtoint(edit3.text);

seek(f,filesize(f));

Write(f,v);

edit1.text:='';

edit2.Text:='';

edit3.Text:='';

CloseFile(F); end;

Задания:

Разработать форму, на которую поместить следующие компоненты: компонент MainMenu, компонент OpenDialog, поле ввода Edit1 (в зависимости от задания) и компонент memo1. Разработать следующее меню: меню Файл, содержащее команды создать, открыть, добавить, меню Поиск, содержащее команду, при выборе которой происходит поиск по выбранному критерию, меню Выход, содержащее команду выход. Организовать работу следующим образом: при выборе в меню команды создать происходит создание типизированного файла, при выборе команды добавить происходит добавление данных из полей ввода в типизированный файл, который был создан. При выборе команды открыть данные из файла отображаются в memo.

Варианты заданий:

  1. Адресное бюро. Поля ввода: фамилия, адрес, телефон. Поиск осуществлять по фамилии.

  2. Аэропорт. Поля ввода: фамилия пилота, рейс, маршрут. Поиск осуществлять по маршруту.

  3. Туристическое агентство. Поля ввода: маршрут, количество дней, день отправки. Поиск осуществлять по дню оправки.

  4. Библиотека. Поля ввода: автор, название произведения, год издания. Поиск осуществлять по автору.

  5. Регистрационный пункт ГИБДД. Поля ввода: номер машины, фамилия, номер водительского удостоверения. Поиск осуществлять по номеру машины.

  6. Продовольственный магазин. Поля ввода: название товара, срок реализации, поставщик. Поиск осуществлять по названию товара.

  7. Брокерская фирма. Поля ввода: акции, количество, курс акции. Поиск осуществлять по курсу акции.

  8. Ботанический сад. Поля ввода: название растения, возраст, восприимчивость к холоду. Поиск осуществлять по названию растения.

  9. Морская компания. Поля ввода: название судна, фамилия капитана, тип судна. Поиск осуществлять по фамилии капитана.

  10. Образовательные учреждения. Поля ввода: название учреждения, стоимость за семестр, адрес. Поиск осуществлять по названию учреждения.

  11. Рекламное агентство. Поля ввода: услуги, тариф, фамилия клиента. Поиск осуществлять по тарифу.

  12. Детские оздоровительные лагеря. Поля ввода: название лагеря, день заезда, стоимость путевки. Поиск осуществлять по стоимости путевки.

ВОПРОСЫ:

  1. Что такое типизированный файл.

  2. Как добавить в файл данные.

  3. Открытие файла для чтения данных.