Используемые компоненты:
Курск 2006 Цель: Изучение принципов работы с файлами на языке Delphi, получение навыков программирования с использованием файлов.
Задание:
Создать каталог продуктов. Окно программы:
Используемые компоненты:
Продолжение таблицы
Текст программы : 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); // íàçíà÷àåòñÿ èìÿ ôàéëîâîé ïåðåìåííîé 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]:='Èòîãî'; 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. Тестирование :
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (214)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |