Лабораторная работа: Изучение работы с файлами на языке Delphi
Название: Изучение работы с файлами на языке Delphi Раздел: Рефераты по информатике Тип: лабораторная работа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Министерство образования и науки Российской Федерации Курский государственный технический университет Кафедра ПО ВТ Изучение работы с файлами на языке Delphi
Выполнил: студент гр. ПО 62 Шиляков И.А. Проверил: ст. преподаватель Петрик Е.А. Курск 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.
Тестирование :
|