11
Министерство образования и науки Российской Федерации
Курский государственный технический университет
Кафедра ПО ВТ
Изучение работы с файлами на языке Delphi
Выполнил: студент гр. ПО 62 Шиляков И.А.
Проверил: ст. преподаватель Петрик Е.А.
Курск
2006
Цель:
Изучение принципов работы с файлами на языке Delphi, получение навыков программирования с использованием файлов.
Задание:
Создать каталог продуктов.
Окно программы:
Используемые компоненты:
№ |
Имя компонента |
Страница палитры компонентов |
Настраиваемые компоненты |
Значения |
|
1 |
2 |
3 |
4 |
5 |
|
1 |
Form1 |
- |
Сaption |
Лабораторная работа №10 |
|
Color |
clMoneyGreen |
||||
2 |
Bitbtn1 |
Additional |
Caption |
Удалить по наименованию |
|
3 |
Label1 |
Standard |
Caption |
Введите продукты и их стоимость |
|
Color |
clMoneyGreen |
||||
Color (Font) |
clNavy |
||||
Size (Font) |
12 |
||||
Charset (Font) |
DEFAULT_CHARSET |
||||
Height (Font) |
-16 |
Продолжение таблицы
1 |
2 |
3 |
4 |
5 |
|
4 |
Label2 |
Standard |
Caption |
Общая сумма |
|
Color |
clMoneyGreen |
||||
Color (Font) |
clNavy |
||||
Size (Font) |
10 |
||||
Charset (Font) |
DEFAULT_CHARSET |
||||
Height (Font) |
-13 |
||||
5 |
Button1 |
Standard |
Caption |
Открыть |
|
Charset |
BALTIC_CHARSET |
||||
Height |
-11 |
||||
Size |
8 |
||||
6 |
Button2 |
Standard |
Caption |
Сохранить |
|
Charset |
BALTIC_CHARSET |
||||
Height |
-11 |
||||
Size |
8 |
||||
7 |
Button3 |
Standard |
Caption |
Расчет |
|
Charset |
DEFAULT_CHARSET |
||||
Height |
-11 |
||||
Size |
8 |
||||
Name |
MS Sans Serif |
||||
8 |
Button4 |
Standard |
Caption |
Добавить строку |
|
Charset |
DEFAULT_CHARSET |
||||
Height |
-11 |
||||
Size |
8 |
||||
Name |
MS Sans Serif |
||||
9 |
Button5 |
Standard |
Caption |
Поиск |
|
Charset |
DEFAULT_CHARSET |
||||
Height |
-11 |
||||
Size |
8 |
||||
Name |
MS Sans Serif |
||||
10 |
Edit1 |
Standard |
Text |
tt.text |
|
11 |
Edit2 |
Standard |
Text |
||
12 |
Edit3 |
Standard |
Text |
||
13 |
Edit4 |
Standard |
Text |
||
14 |
StringGrid1 |
Additional |
FixesCols |
0 |
|
FixesRows |
1 |
||||
RowCount |
11 |
||||
ColCount |
16 |
||||
Options |
[goEditing, goTab] |
||||
FixedColor |
clSkyBlue |
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Buttons;
type
s30=string[30];
P = record
tovar: string[30];
money: integer;
kol: integer;
itogo: integer;
end;
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
Button3: TButton;
Edit2: TEdit;
Label2: TLabel;
BitBtn1: TBitBtn;
Edit3: TEdit;
Button4: TButton;
Button5: TButton;
Edit4: TEdit;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function poisk(istochnik,chto:s30):boolean;
var i,k:integer;
procedure poisk2(B,M:s30);
var k:integer; b1:boolean;
begin
i:=0;
while length(b)>=length(m)+i do
begin
b1:=true;
for k:=1 to length(m) do begin
if m[k]=b[k+i] then else b1:=false;
end;
if b1=true then begin poisk:=b1; exit; end; i:=i+1;
end;
end;
begin
if length(istochnik)>=length(chto) then
poisk2(istochnik,chto)
else
poisk2(chto,istochnik);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer; s:string; z:p;
f: file of p;
begin
s:=edit1.Text;
system.Assign(f,s); // iacia?aaony eiy oaeeiaie ia?aiaiiie
rewrite(f); // niaaiea ionoiai oaeea, oeacaoaeu onoai. ia ioeaaie ye-o
for i:=1 to stringgrid1.RowCount do if (stringgrid1.Cells[0,i]<>) then
begin
z.tovar:=stringgrid1.cells[0,i];
z.money:=strtoint(stringgrid1.cells[1,i]);
z.kol:=strtoint(stringgrid1.cells[2,i]);
write(f,z); // caienu a oaee f caiene z
end;
system.close(f);
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; z:p;
f: file of p;
begin
i:=1;
system.Assign(f,edit1.Text);
reset(f); // ioe?uou oaee
while not eof(f) do
begin
read(f,z);
stringgrid1.cells[0,i]:=z.tovar;
stringgrid1.cells[1,i]:=inttostr(z.money);
stringgrid1.cells[2,i]:=inttostr(z.kol);
stringgrid1.RowCount:=i+1;
i:=i+1;
end;
system.close(f);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
stringgrid1.Cells[0,0]:=Oiaa?;
stringgrid1.Cells[1,0]:=Noieiinu;
stringgrid1.Cells[2,0]:=Eie-ai;
stringgrid1.Cells[3,0]:=Eoiai;
end;
procedure TForm1.Button3Click(Sender: TObject);
Var i:integer;
begin
edit2.Text:=0;
for i:=1 to stringgrid1.RowCount-1 do
begin
stringgrid1.cells[3,i]:=Floattostr(strtoint(stringgrid1.Cells[1,i])*(strtoint(stringgrid1.Cells[2,i])));
edit2.Text:=floattostr(strtofloat(stringgrid1.cells[3,i])+strtofloat(edit2.text));
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,k:integer;
begin
i:=1;
repeat
if stringgrid1.Cells[0,i]=edit3.text then
begin
k:=i;
while k<stringgrid1.RowCount-1 do
begin
stringgrid1.Cells[0,k]:=stringgrid1.Cells[0,k+1];
stringgrid1.Cells[1,k]:=stringgrid1.Cells[1,k+1];
stringgrid1.Cells[2,k]:=stringgrid1.Cells[2,k+1];
stringgrid1.Cells[3,k]:=stringgrid1.Cells[3,k+1];
k:=k+1;
end;
stringgrid1.RowCount:=stringgrid1.RowCount-1;
end;
i:=i+1;
until stringgrid1.RowCount-1<i;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
stringgrid1.RowCount:=stringgrid1.RowCount+1;
for i:=0 to 4 do
stringgrid1.cells[i,stringgrid1.RowCount-1]:=;
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:integer; z:p;
f: file of p;
begin
system.Assign(f,edit1.Text);
reset(f); // ioe?uou oaee
stringgrid1.RowCount:=2;
stringgrid1.Cells[0,1]:=Ia iaeaaii;
for i:=1 to 3 do
stringgrid1.Cells[i,1]:=;
i:=1;
while (not eof(f)) and (edit4.text<>) do
begin
read(f,z);
if poisk(AnsiUpperCase(z.tovar),AnsiUpperCase(edit4.text)) then
begin
stringgrid1.cells[0,i]:=z.tovar;
stringgrid1.cells[1,i]:=inttostr(z.money);
stringgrid1.cells[2,i]:=inttostr(z.kol);
stringgrid1.RowCount:=i+1;
i:=i+1;
end;
end;
system.close(f);
end;
end.
Тестирование:
Контрольная работа | Концепция информатизации Российской Федерации |
Контрольная работа | Причины агрессивного поведения. Методы работы с агрессивными детьми |
Контрольная работа | Алгоритм выбора и реализации предпринимательской идеи |
Контрольная работа | Системы управления взаимоотношения с клиентами |
Контрольная работа | Учет материальных затрат в бухгалтерском учете |
Контрольная работа | Современные методы арт-терапии |
Контрольная работа | Геополитическое положение России |
Контрольная работа | Особенности вознаграждения работников в организации |
Контрольная работа | Виды запасов |
Контрольная работа | Психоанализ |
Контрольная работа | Индивидуально-типологические особенности личности |
Контрольная работа | Вторая мировая война и Великая Отечественная война |
Контрольная работа | Семейное право |
Контрольная работа | Напівфабрикати з січеної натуральної і котлетної маси |
Контрольная работа | Использование полезных микроорганизмов |