close

Вход

Забыли?

вход по аккаунту

?

ОТЧЁТ 4 ЛАБА

код для вставкиСкачать

Лабораторная работа № 4.
Тема: Файлы. Запись информации в файлы на языке Object Pascal в Delphi.
Цель работы: Целью лабораторной работы является изучение алгоритмов работы с файлами в языке Object Pascal, изучение диалоговых компонентов Delphi для работы с файлами.
Текст программы:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, Menus, IWVCLBaseControl, IWBaseControl,
IWBaseHTMLControl, IWControl, IWCompProgressBar, ComCtrls;
type
//создаем поля
TStudent=record
Группа:string[10];
Имя:string[10];
Курс:string[10];
Возраст:integer;
end;
//создаем массив
TGroup=array [0..35] of TStudent;
TForm2 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
RadioGroup1: TRadioGroup;
ListBox1: TListBox;
ComboBox1: TComboBox;
Timer1: TTimer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
StringGrid1: TStringGrid;
Label1: TLabel;
Button5: TButton;
Button8: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
ProgressBar1: TProgressBar;
Timer2: TTimer;
Button6: TButton;
Button4: TButton;
Button7: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
Grp:TGroup;
fg,i,n,номер,номер_записи,c,количество_записей,x,d,rr:integer;
счетчик,hj:integer;
j,nn,kl:string;
implementation
{$R *.dfm}
МИВУ.230100.62
procedure TForm2.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Имя';
StringGrid1.Cells[0,1]:='Курс';
StringGrid1.Cells[0,2]:='Группа';
StringGrid1.Cells[0,3]:='Возраст';
номер_записи:=1;
количество_записей:=0;
fg:=0;
progressbar1.Visible:=false;
rr:=0;
end;
//Выход из программы через меню (Ctrl+z)
procedure TForm2.N2Click(Sender: TObject);
begin
close;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
//переменная 'номер' первоначально =0
with Grp[номер] do
begin
//присваиваем полям значения
Группа:=StringGrid1.Cells[1,2];
Имя:=StringGrid1.Cells[1,0];
Курс:=StringGrid1.Cells[1,1];
Возраст:=StrToInt(StringGrid1.Cells[1,3]);
end;
ListBox1.Items.Add(Grp[номер].Имя);
ListBox1.ItemIndex:=ListBox1.Items.Count-1;
str(номер_записи,nn);
j:='Запись'+nn ;
ComboBox1.Items.Add(j);
ComboBox1.ItemIndex:=ListBox1.Items.Count-1;
номер_записи:=номер_записи+1;
номер:=номер+1;
количество_записей:=количество_записей+1;
Label1.Caption:='Всего студентов: '+inttostr(количество_записей);
счетчик:= round(ProgressBar1.Max/количество_записей);
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
n:=ListBox1.ItemIndex;
c:=ComboBox1.ItemIndex;
if n>=0 then
begin
МИВУ.230100.62
StringGrid1.Cells[1,0]:=Grp[n].Имя;
StringGrid1.Cells[1,1]:=Grp[n].Курс;
StringGrid1.Cells[1,2]:=Grp[n].Группа;
StringGrid1.Cells[1,3]:=IntToStr(Grp[n].Возраст);
end;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
if Application.MessageBox('Удалить запись?','lab4',MB_YESNO)=ID_NO then exit;
n:=ListBox1.ItemIndex;
if n>=0 then
begin
for i:=n to 1-2 do
Grp[i]:=Grp[i+1];
ListBox1.Items.Delete(n);
ComboBox1.Items.Delete(n);
количество_записей:=количество_записей-1;
Label1.Caption:='Всего студентов: '+inttostr(количество_записей);
ListBox1.ItemIndex:=-1;
end;
end;
procedure TForm2.Button4Click(Sender: TObject);
Var F:File of TStudent; i:integer;
begin
if OpenDialog1.Execute then
AssignFile(f,OpenDialog1.FileName);
Reset(f);
номер:=0;
while not Eof(f) and (номер<=listbox1.itemindex+2) do
begin
Read(f,grp[номер]);
ListBox1.Items.Add(Grp[номер].Имя);
inc(номер);
end;
CloseFile(f);
end;
//Очистка записей
procedure TForm2.Button5Click(Sender: TObject);
begin
StringGrid1.Cells[1,0]:='';
StringGrid1.Cells[1,1]:='';
StringGrid1.Cells[1,2]:='';
StringGrid1.Cells[1,3]:='';
end;
procedure TForm2.Button6Click(Sender: TObject);
Var s:File of TStudent; i:integer;
begin
МИВУ.230100.62
SaveDialog1.DefaultExt:='dat';
SaveDialog1.Filter:='файлы данных (.dat)|*.dat';
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
if Application.MessageBox('Перезаписать?','Вопрос',
MB_YESNO or MB_ICONQUESTION)=ID_NO then exit;
AssignFile(s,SaveDialog1.FileName);
Rewrite(s);
for i:=0 to номер-1 do
Write(s,grp[i]);
CloseFile(s);
end;
end;
procedure TForm2.Button7Click(Sender: TObject);
Var F:TextFile; i:integer;
begin
SaveDialog1.DefaultExt:='txt';
SaveDialog1.Filter:='текстовый файл (.txt)|*.txt';
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
if Application.MessageBox('Перезаписать?','Вопрос',
MB_YESNO or MB_ICONQUESTION)=ID_NO then exit;
AssignFile(f,SaveDialog1.FileName);
Rewrite(f);
for i:=0 to номер-1 do
begin
writeln(f,'Имя : ',grp[i].Имя);
writeln(f,'Курс : ',grp[i].Курс);
writeln(f,'Группа : ',grp[i].Группа);
writeln(f,'Возраст: ',grp[i].Возраст);
writeln(f);
end;
CloseFile(f);
end;
end;
//Очистка ListBox1
procedure TForm2.Button8Click(Sender: TObject);
begin
ListBox1.Items.Clear;
comboBox1.Items.Clear;
Label1.Caption:='Всего студентов: 0';
количество_записей:=0;
end;
//выбор видимости или не видимости строки состояния
procedure TForm2.CheckBox1Click(Sender: TObject);
begin
МИВУ.230100.62
if CheckBox1.Checked=true then
progressbar1.Visible:=true;
if CheckBox1.Checked=false then
progressbar1.Visible:=false;
ProgressBar1.Position := 0;
end;
//включение автопросмотра
procedure TForm2.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked=false then
ProgressBar1.Position := 0;
if CheckBox2.Checked=true then
begin
Timer1.Interval:=1000;
Timer1.Enabled:=true;
end;
end;
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
c:=ComboBox1.ItemIndex;
if c>=0 then
begin
StringGrid1.Cells[1,0]:=Grp[c].Имя;
StringGrid1.Cells[1,1]:=Grp[c].Курс;
StringGrid1.Cells[1,2]:=Grp[c].Группа;
StringGrid1.Cells[1,3]:=IntToStr(Grp[c].Возраст);
end;
end;
procedure TForm2.N4Click(Sender: TObject);
begin
ListBox1.Items.Clear;
end;
procedure TForm2.RadioGroup1Click(Sender: TObject);
begin
c:=ComboBox1.ItemIndex;
Label4.Caption:=Grp[c].Имя;
if (RadioGroup1.itemIndex=0) then
begin
Label5.Caption:='Группа: '+Grp[c].Группа;
end;
if (RadioGroup1.itemIndex=1) then
begin
Label5.Caption:='Возраст: '+IntToStr(Grp[c].Возраст);
end;
if (RadioGroup1.itemIndex=2) then
begin
МИВУ.230100.62
Label5.Caption:='Курс: '+Grp[c].Курс;
end;
end;
//автоматический просмотр записей
procedure TForm2.Timer1Timer(Sender: TObject);
begin
if CheckBox2.Checked=true then
begin
if fg=количество_записей then
fg:=0;
if (RadioGroup1.itemIndex=0) then
begin
Label5.Caption:='Группа: '+Grp[fg].Группа;
fg:=fg+1;
end;
if (RadioGroup1.itemIndex=1) then
begin
Label5.Caption:='Возраст: '+IntToStr(Grp[fg].Возраст);
fg:=fg+1;
end;
if (RadioGroup1.itemIndex=2) then
begin
Label5.Caption:='Курс: '+Grp[fg].Курс;
fg:=fg+1;
end;
end;
if rr<=количество_записей then
begin
if CheckBox2.Checked=true then
begin
hj:=счетчик;
ProgressBar1.Position:=счетчик;
sleep(1000);
счетчик:=счетчик+hj;
rr:=rr+1;
end;
end;
if количество_записей<rr then
begin
ProgressBar1.Position:=0;
rr:=0;
счетчик:= round(ProgressBar1.Max/количество_записей);
end;
end;
end.
МИВУ.230100.62
Результат выполнения программы:
Рисунок 1-Меню.
Рисунок 2-Добавление студентов.
МИВУ.230100.62
Рисунок 3-Сохранение.
Рисунок 4-Загрузка файла.
МИВУ.230100.62
Рисунок 5-Форма после загрузки файла.
Рисунок 6-Сохранение текстового файла.
МИВУ.230100.62
Рисунок 7-Текстовый файл сохранён.
Рисунок 8-Содержимое текстового файла.
Вывод: в ходе этой лабораторной работы я изучил алгоритмы работы с файлами в языке Object Pascal, изучил диалоговые компоненты Delphi для работы с файлами.
МИВУ.230100.62
Документ
Категория
Рефераты
Просмотров
19
Размер файла
370 Кб
Теги
лабораторная работа, лаба, отчет, лабораторная
1/--страниц
Пожаловаться на содержимое документа