ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 24
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Документ для печати – информация об автомобиле.
Диаграмма должна отображать общее количество автомобилей каждой марки (четыре любые марки выбирает пользователь).
Индивидуальное задание:16
Типизированный файл должен содержать данные о товарах на складе (наименование товара, поставщик, цена, количество, стоимость (это поле пользователем не заполняется, оно должно вычисляться на основании полей "цена" и "количество")).
Просмотр и печать по условию: информация о товарах, количество которых находится в указанном диапазоне.
Удаление по условию – по наименованию поставщика.
Документ для печати – накладная.
Диаграмма должна отображать общую стоимость поставки товаров за каждый месяц указанного года.
Индивидуальное задание:17
Типизированный файл должен содержать данные о выставке собак (название выставки, место проведения выставки, дата проведения выставки, кличка собаки, порода, возраст, высота в холке, оценка(отлично/хорошо), занятое место).
Просмотр и печать по условию: информация о собаках выбранной породы и выставки, возраст которых находится в указанном диапазоне.
Документ для печати – диплом участника выставки.
Диаграмма должна отображать общее количество участников каждой породы(четыре любые породы которые выбирает пользователь) на указанной выставке .
Индивидуальное задание:18
Типизированный файл должен содержать данные о призёрах зимней олимпиады (ФИО спортсмена, возраст спортсмена, вид спорта, страна, медаль, год проведения олимпиады).
Просмотр и печать по условию: информация о спортсменах-призёрах выбранной страны, возраст которых находится в указанном диапазоне.
Документ для печати – диплом участника олимпиады.
Диаграмма должна отображать общее количество призеров по виду медалей во время проведения олимпиады указанного года.
Индивидуальное задание:19
Типизированный файл должен содержать данные о дипломных работах студентов колледжа, подлежащих защите (ФИО студента, Группа, ФИО научного руководителя, тема дипломной работы, количество страниц в работе, рекомендуемая оценка).
Просмотр и печать по условию: информация о дипломных работах студентов выбранной группы, рекомендуемая оценка которых, совпадает с указанной.
Документ для печати – рецензия дипломной работы.
Диаграмма должна отображать общее количество студентов имеющих оценку 5, 4, 3,2.
Индивидуальное задание:20
Типизированный файл должен содержать данные о прохождении студентами-юношами колледжа учебных сборов в войсковой части (ФИО студента, Группа, Дата начала учебных сборов, количество дней, номер в/ч).
Просмотр и печать по условию: информация о студентов выбранной группы, проходивших учебные сборы в указанной в/ч.
Документ для печати – справка о прохождении учебных сборов.
Диаграмма должна отображать общее количество студентов прошедших учебные сборы за последние три четыре года.
Индивидуальное задание:21
Типизированный файл должен содержать данные о ежегодной всероссийской олимпиаде по программированию (ФИО участника, Город, Название учебного заведения, Дата, количество баллов за тест, количество баллов за практическую часть, поле «общее количество баллов» должно заполняться программно).
Просмотр и печать по условию: информация об участниках выбранного города, набравших общее количество баллов больше указанного.
Удаление по условию – дата проведения олимпиады.
Документ для печати – справка о результатах олимпиады.
Диаграмма должна отображать общее количество баллов набранных участниками трёх городов. Выбор этих городов осуществляется пользователем программы.
3 Основные сведения из теории
Различаются файлы трех типов:
а) текстовые (последовательный доступ к записям),
б) типизированные (прямой доступ к записям)
в) и нетипизированные (двоичные файлы).
Для доступа к файлам используется специальная файловая переменная (далее в качестве имени файловой переменной будем использовать символ F).
Файловая переменная описывается так:
Var F : Textfile – для текстовых файлов
Var f : file of <тип данных> - для типизированных файлов
Var f : file –для нетипизированных файлов.
Обычная техника программирования при работе с файлами включает вызовы следующих процедур:
-
AssignFile (F, Filename:string); - устанавливает связь между логическим именем файла (файловой переменной) и физическим именем файла. -
Rewrite (F); -открывает файл для записи: если файл не существует, то он создается, если существует, то очищается. -
Append (F);- открытие текстового файла для добавления информации в конец файла,
в этом случае файл не очищается.
-
Reset (F);-открывает существующий файл для чтения - если файл текстовый, для чтения или записи – если файл типизированный или нетипизированный. -
CloseFile (F); -закрывает файл (прерывает связь, установленную AssignFile).
Для чтения данных из файла применяют процедуры:
Read (var F;<список переменных>); -считывает из текстового или типизированного файла указанный список.
Readln (var F;<список переменных>); - считывет из файла (только текстового) указанный список переменных и преводит позицию чтения на следующую запись.
Для записи данных в файл существуют процедуры:
Write (var F; <список переменных>); - записывает в текстовый или типизированный файл указанный список.
Writeln (var F; <список переменных>); - записывает в текстовый файл указанный список и символ перехода на новую строку.
Пример:
Пусть в текстовом файле Sadik.txt хранится список детей – в каждой строке файла содержится возраст ребенка, имя и фамилия. Следует считать весь список детей в Memo3, список детей младше 5 лет – в Memo1, список детей 5 лет и старше – в Memo2.
Procedure Tform4.Button1Click (Sender:Tobject);
Var
F : TextFile ; // файловая переменная
Vozr : integer ; // возраст
Famname : string ; // фамилия и имя
Begin
Memo1.Clear ; Memo2.Clear ; Memo3.Clear ; // очищаемсодержимоевсех Memo
Memo3.Lines.LoadfromFile ('d:\sadik.txt') ; // считываемвесьсписокдетейизфайлав Memo3
AssignFile (F, 'd:\sadik.txt') ;
Reset (F) ; // открываем файл для чтения
While not Eof (F) do
Begin
Readln (F, Vozr, Famname) ;
If Vozr < 5 then Memo1.LinesAppend (Famname + '-' + IntTostr (Vozr) )
Else Memo2.Lines.Append (Famname + '-' + IntToStr (Vozr) )
End ;
CloseFile (f) ;
End;
Полезные функции, применимые при работе с файлами
-
Переименование файла:
Function RenameFile(const Oldname, Newname: string) : boolean; -функция возвращает значение true, если переименование прошло успешно; переименовывать можно только закрытые(не открытые для чтения или записи) файлы.
-
Определение факта существования файла:
Function FileExists (const Fname:string):boolean; возвращает true, если файл существует.
Пример: If FileExists ('a:\doc1.txt') then
If NOT RenameFile ('a:\doc1.txt', 'a:\doc1.bak') then
ShowMessage (' дублирование имени файла или файл занят другой программой! ' ) ;
If not FileExists ( 'a:\doc1.txt' ) then Memo1.Lines.SaveToFile ( 'a:\doc1.txt' ) ;
-
Определение размера файла (для текстовых файлов не используется)
Function FileSize(F) : integer;
Где F- логическое имя файла.
Пример: создадим процедуру, позволяющую определить и отобразить размер любого выбранного пользователем файла.
Procedure Tform1.Button3Click (Sender:Tobject);
Var Size : integer ;
F : file ;
Begin
If Opendialog1.Execute then
Begin
AssignFile (F, Opendialog1.Filename) ;
Reset (F) ;
Size := FileSize (F) ;
CloseFile (f) ;
Label1.WordWrap := true ; //возможность вывода в несколько строк
Label1.Caption := 'Размер файла ' + Opendialog1.Filename + 'равен ' + IntToStr (size) + ' байт' ;
End ;
End ;
4)Удаление файла
Function Deletefile(const Fname:string):boolean; - Возвращает true при успешном удалении файла.
5) Выделение частей имени файла
Function ExtractFileExt (const Fname : string) : string; - выделяет расширение из указанного имени файла.
Function ExtractFileDir (const Fname : string) : string; -выделяет из полного имени файла имя устройства и маршрут. Или Function ExtractFilePath (const Fname : string) : string;
Function ExtractFileName (const Fname : string) : string; - выделяет из полного имени файла только имя c расширением, отбрасывая путь и устройство.
Функции для работы с каталогами и дисками
-
Function CreateDir (const dir : string) : boolean; - создается новый каталог Dir, если функция возрастает true -
Function RemoveDir (const Dir : string) : boolean; - удаляется пустой каталог с диска (файлы предварительно удаляются функцией DeleteFile). -
Function SetCu r r entDir(const Dir : string): boolean; - устанавливается текущим каталог Dir. -
Function GetCu r r entDir : string; - определяет имя текущего каталога.
Работа с типизированными файлами
Типизированные файлы являются файлами прямого доступа – к любой записи файла можно обратиться напрямую по номеру записи. Существуют специальные процедуры и функции для работы с типизированными файлами:
-
Procedure Seek (var F;File; N:longint); - перемещает указатель (курсор) в файле на запись с номером N. -
Function FilePos (var F:file):longint; - функция возвращает номер записи в файле F, на которой находится указатель -
Function Filesize (var F:File):longint; - возвращает число записей в файле F. -
Procedure Truncate (var F:File); - процедура удаляет все записи от текущей включительно до конца файла.
Пример: сформируем типизированный файл, где будут хранится сведения о поступающих на склад товарах. Нажатие на кнопку Добавить должно добавлять одну запись в файл, содержащую сведения о поступившем товаре: дату поставки, название товара, цену и количество поступившего товара.
Procedure Tform1.Button1Click (sender:Tobject); // программируемкнопку Добавить
Type
Ttov = record //структура записи, содержащая сведения о товаре
DateP : TdateTime; //дата поставки
Tovar : string[15]; //название товара
Cena : real; //цена товара
Count : integer; //количество товара
End;
Var Tov_rec : Ttov; //запись содержащая сведения о товаре
Ft : file of Ttov; // файл для хранения сведений о товаре
Begin
{формируем запись}
Tov_rec.DateP := dateTimePicker1.Date;
Tov_rec.Tovar := Combobox1.text;
Tov_rec.Cena := StrToFloat (edit1.text);
Tov_rec.Count := StrToInt (edit2.text);
AssignFile (Ft, 'tovar.dat'); //связьсреальнымфайлом
If not FileExists ('tovar.dat') then Rewrite (Ft) //открываемфайлдлязаписиданных
Else begin
Reset (ft);
Seek (Ft, Filesize (Ft)); //переходнапоследнююзапись файла
End;
Write (Ft,Tov_rec); //записываем на диск одну запись
CloseFile (Ft);
Edit1.text := '';
Edit2.text := '';
End;
ПРИМЕР построения диаграммы
procedure TForm1.BitBtn1Click(Sender: TObject);
Var a1,a2,a3 : longint;
begin
a1:=100; a2:=200; a3:=300;
chart1.SeriesList[0].Add(A1, 'Цех 1', clYellow);
chart1.SeriesList[0].Add(A2, 'Цех 2 ', clBlue);
chart1.SeriesList[0].Add(A3, 'Цех 3 ', clRed);
end;
Приложение А
Экранные формы
Рисунок А.1 – Экранная форма «Справочник «Товары»
Рисунок А.2 – Экранная форма «Добавление записи»
Рисунок А.3 – Экранная форма «Просмотр по условию»