| Министерство образования и науки Российской Федерации
Курский государственный технический университет
Кафедра ПО ВТ
Изучение работы с файлами на языке
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);
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
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); // íàçíà÷àåòñÿ èìÿ ôàéëîâîé ïåðåìåííîé
rewrite(f); // ñîäàíèå ïóñòîãî ôàéëà, óêàçàòåëü óñòàí. íà íóëåâîé ýë-ò
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); // çàïèñü â ôàéë f çàïèñè 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); // îòêðûòü ôàéë
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]:='Òîâàð';
stringgrid1.Cells[1,0]:='Ñòîèìîñü';
stringgrid1.Cells[2,0]:='Êîë-âî';
stringgrid1.Cells[3,0]:='Èòîãî';
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе
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); // îòêðûòü ôàéë
stringgrid1.RowCount:=2;
stringgrid1.Cells[0,1]:='Íå íàéäåíî';
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.
Тестирование
:
|