Скачиваний:
83
Добавлен:
04.03.2014
Размер:
10.31 Кб
Скачать
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ExtCtrls, Menus, StdCtrls, jpeg;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
Image1: TImage;
tab1: TStringGrid;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N11: TMenuItem;
Label1: TLabel;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
procedure FormActivate(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
{procedure N13Click(Sender: TObject);}
private
{ Private declarations }
public
{ Public declarations }
end;

Tnom=record
Name:String[25]; {Названия автомобиля}
Cvet:String[10]; {Цвет автомобиля}
Cena:String[10]; {цена автомобиля}
end;
Tbase=File of Tnom;

var
Form1: TForm1;
fname:string;
f:Tbase;

implementation

{$R *.dfm}
uses unit2,unit3;

Type
Tavto=ARRAY[1..20] of Tnom;


procedure TForm1.FormActivate(Sender: TObject);
begin
tab1.Visible:=true;
tab1.RowCount:=1;
tab1.Cells[0,0]:='Название авто';
tab1.Cells[1,0]:='Цвет';
tab1.Cells[2,0]:='Цена';
end;


procedure TForm1.N10Click(Sender: TObject);
begin
closefile(f);
close;
end;

procedure TForm1.N11Click(Sender: TObject);{сортировка по названию}
var b:Tnom; i,j,n:integer;
z:Tavto;
begin
Form1.FormActivate(Sender);
if OpenDialog1.Execute then
fname:=OpenDialog1.FileName;
AssignFile(f,Fname);
{Setlength(z,filesize(f));}
Reset(f);
i:=0;
While not EOF(F) do
begin
inc(i);
Read(F,z[i]);
end;
n:=i;
for i:=1 to n-1 do
for j:=i+1 to n do
if z[i].name>z[j].Name then
begin
b:=z[i];
z[i]:=z[j];
z[j]:=b;
end;
for i:=1 to n do
begin
tab1.Cells[0,i]:=z[i].Name;
tab1.Cells[1,i]:=z[i].Cvet;
tab1.Cells[2,i]:=z[i].Cena;
end;
tab1.rowcount:=n+1;
end;

procedure TForm1.N12Click(Sender: TObject); {создать типизированный из текстового файла}
var z:Tnom; f1:textfile; fname1:string;
begin
Form1.FormActivate(Sender);
opendialog1.Filter:='Текстовый файл(*.txt)';
if Opendialog1.Execute then
fname1:=Opendialog1.FileName;
if Savedialog1.Execute then
fname:=Savedialog1.FileName;
Assignfile(f1,fname1);
Assignfile(f,fname);
Reset(f1);
Rewrite(f);
While not EOF(F1) do
begin
Readln(f1,z.Name);
Readln(f1,z.Cvet);
Readln(f1,z.Cena);
write(f,z);
end;
closefile(f);
closefile(f1);
end;

procedure TForm1.N13Click(Sender: TObject); {вывести авто заданного цвета на новую форму}
var z:Tnom; i:integer; cvet:string; flag:boolean;
begin
Form1.FormActivate(Sender);
flag:=TRUE;
if OpenDialog1.Execute then fname:=Opendialog1.FileName;
AssignFile(f,fname);
Reset(f);
Tab1.Visible:=TRUE;
cvet:=Inputbox('Поиск','Введите цвет','');
i:=1;
while not EOF(f) do
begin
read(f,z);
if z.cvet=cvet then
begin
Form3.Show;
Form3.tab2.RowCount:=Form3.tab2.RowCount+1;
Form3.tab2.Cells[0,i]:=z.Name;
flag:=false;
i:=i+1;
end;
end;
if flag then showmessage('Нет автомобилей с данным цветом');
end;

procedure TForm1.N14Click(Sender: TObject); {список из самых дорогих}
var a:integer; z:Tnom; d1:textfile; fname1:string; f1:textfile;
begin
Form1.FormActivate(sender);
if opendialog1.Execute then
fname:=Opendialog1.FileName;
savedialog1.Filter:='Текстовый файл(*.txt)';
if savedialog1.Execute then
fname1:=savedialog1.FileName;
Assignfile(f,fname);
Reset(f);
AssignFile(f1,fname1);
Rewrite(f1);
writeln(f1,'Самые дорогие автомоболи(цена более 4000000)');
a:=4000000;
while not EOF(f) do
begin
read(f,z);
if z.Cena>inttostr(a) then writeln(f1,z.Name);
end;
closefile(f);
closefile(f1);
end;

procedure TForm1.N15Click(Sender: TObject);
var x,b,z:Tnom;
begin
Form1.FormActivate(Sender);
If OpenDialog1.execute then
fname:=OpenDialog1.FileName;
AssignFile(F,fname);
Reset(F);
read(F,z);
x:=z;
while NOT EOF(F) do
begin
if x.cena<z.cena then x:=z;
read(f,z);
end;
form3.Tab2.cells[0,1]:=x.Name; form3.Tab2.cells[1,1]:=x.cena;
seek(f,0);
read(f,z);
b:=z;
while not eof(F) do
begin
if (b.cena<z.cena) and (z.cena<x.cena) then
b:=z;
read(f,z);
end;
form3.Tab2.cells[0,2]:=b.name;
form3.Tab2.cells[1,2]:=b.cena;
form3.Show; form3.tab2.Visible:=true;
closefile(f);

end;

procedure TForm1.N2Click(Sender: TObject); {Создать}
begin
Form1.FormActivate(Sender);
if SaveDialog1.Execute then
fname:=SaveDialog1.FileName;
AssignFile(F,Fname);
Rewrite(F);
Form2.Show;
Form2.Edit3.SetFocus;
end;

procedure TForm1.N3Click(Sender: TObject); {добавить}
begin
Form1.FormActivate(Sender);
if OpenDialog1.Execute then
fname:=OpenDialog1.FileName;
AssignFile(f,Fname);
Reset(f);
seek(f,filesize(f));
form2.Show;
form2.Edit3.SetFocus;
end;

procedure TForm1.N4Click(Sender: TObject); {Просмотр}
var z:Tnom; i:integer;
begin
Form1.FormActivate(Sender);
if OpenDialog1.Execute then
fname:=OpenDialog1.FileName;
AssignFile(f,fname);
Reset(f);
tab1.Visible:=TRUE;
i:=1;
while not EOF(f) do
begin
tab1.RowCount:=tab1.RowCount+1;
Read(f,z);
tab1.Cells[0,i]:=z.Name;
tab1.Cells[1,i]:=z.Cvet;
tab1.Cells[2,i]:=z.Cena;
i:=i+1;
end;
end;

procedure TForm1.N5Click(Sender: TObject); {удаление}
var z:Tnom; l:byte; nom:string; flag:boolean;
begin
Form1.FormActivate(Sender);
flag:=TRUE;
if opendialog1.Execute then fname:=Opendialog1.FileName;
AssignFile(f,Fname);
Reset(f);
nom:=inputbox('удаление','Введите название авто для удаления','');
while not EOF(f) do
begin
Read(f,z);
if z.Name=nom then
begin
flag:=false;
l:=filepos(f);
seek(f,filesize(f)-1);
read(f,z);
seek(f,l-1);
write(f,z);
break;
end;
end;
if flag then showmessage('Нет данных')
else
begin
seek(f,filesize(f)-1);
truncate(f);
showmessage('Удаление выполнено');
end;
closefile(f);
end;

procedure TForm1.N7Click(Sender: TObject); {поиск по названию}
var z:Tnom; i:integer; naz:string; flag:boolean;
begin
Form1.FormActivate(Sender);
flag:=TRUE;
if OpenDialog1.Execute then fname:=Opendialog1.FileName;
AssignFile(f,fname);
Reset(f);
Tab1.Visible:=TRUE;
naz:=Inputbox('Поиск','Введите название','');
i:=1;
while not EOF(f) do
begin
read(f,z);
if z.Name=naz then
begin
tab1.RowCount:=tab1.RowCount+1;
tab1.Cells[0,i]:=z.Name;
tab1.Cells[1,i]:=z.Cvet;
tab1.Cells[2,i]:=z.Cena;
flag:=false;
i:=i+1;
end;
end;
if flag then
begin
tab1.RowCount:=tab1.RowCount+1;
tab1.Cells[0,1]:='нет данных';
tab1.Cells[1,1]:='';
tab1.Cells[2,1]:='';
end;
end;

procedure TForm1.N8Click(Sender: TObject); {Поиск по цвету}
var z:Tnom; i:integer; cvet:string; flag:boolean;
begin
Form1.FormActivate(Sender);
flag:=TRUE;
if OpenDialog1.Execute then fname:=Opendialog1.FileName;
AssignFile(f,fname);
Reset(f);
Tab1.Visible:=TRUE;
cvet:=Inputbox('Поиск','Введите цвет','');
i:=1;
while not EOF(f) do
begin
read(f,z);
if z.cvet=cvet then
begin
tab1.RowCount:=tab1.RowCount+1;
tab1.Cells[0,i]:=z.Name;
tab1.Cells[1,i]:=z.Cvet;
tab1.Cells[2,i]:=z.Cena;
flag:=false;
i:=i+1;
end;

end;
if flag then
begin
tab1.RowCount:=tab1.RowCount+1;
tab1.Cells[0,1]:='нет данных';
tab1.Cells[1,1]:='';
tab1.Cells[2,1]:='';
end;
end;

procedure TForm1.N9Click(Sender: TObject); {справка}
begin
messageDLG('Автор Кузнецов Виталий. Данное приложение предназначено для формирования базы данных автобобилей PORSCHE. Копирование карается по закону. Все права защищены.',mtInformation,[mbOK],0);
end;

end.
{Reset(f);
for i:=0 to filesize(f)-2 do
for j:=i+1 to filesize(f)-1 do
begin
seek(f,i);
read(f,z);
seek(f,j);
read(f,y);
if z.name>y.name then
begin
sp:=z;
z:=y;
y:=sp;
seek(f,i);
write(f,z);
seek(f,j);
write(f,sp);
end;
end;
closefile(f);}

{procedure TForm1.N13Click(Sender: TObject); {сохранить в текстовый}
{var i,n,j:integer;
v:Tnom; u:string;
begin
savedialog1.Filter:='Текстовый файл(*.txt)';
savedialog1.Execute;
if savedialog1.FileName<>''then begin assignfile(f1,savedialog1.FileName);
n:=0;
for i:=1 to tab1.rowcount-1 do begin
if tab1.cells[1,i]<>'' then inc(n); end;
rewrite(f1);
for i:=1 to n do
begin
v.name:=tab1.cells[0,i];
v.cvet:=tab1.cells[1,i];
v.cena:=tab1.cells[2,i];
writeln(f1,v.name:10,v.cvet:10,v.cena:10);
end;
closefile(f1);
end;
end; }


{var v:Tavto; i,j:integer;
begin
{Setlength(v,tab1.rowcount-1);}
{opendialog1.Filter:='Текстовый файл(*.txt)';
opendialog1.Execute;
if opendialog1.FileName<>''then
begin assignfile(f1,opendialog1.FileName);
reset(f1);
i:=1; j:=1;
while not eof(f1) do
begin
tab1.RowCount:=tab1.RowCount+1;
readln(f1,v[i].name,v[i].cvet,v[i].cena);
tab1.Cells[0,j]:=trim(v[i].name);
tab1.Cells[1,j]:=trim(v[i].cvet);
tab1.cells[2,j]:=trim(v[i].cena);
i:=i+1; j:=j+1;
end;
closefile(f1);
end;
end;}



Соседние файлы в папке Типизированный файл. Тачки
  • #
    04.03.2014338 б83Project1.dpr
  • #
    04.03.2014239 б82Project1.identcache
  • #
    04.03.20144.4 Кб82Project1.res
  • #
    04.03.201416.42 Кб82Unit1.dcu
  • #
    04.03.201448.87 Кб82Unit1.dfm
  • #
    04.03.201410.31 Кб83Unit1.pas
  • #
    04.03.20146.1 Кб82Unit2.dcu
  • #
    04.03.201419.52 Кб82Unit2.dfm
  • #
    04.03.20141.53 Кб82Unit2.pas
  • #
    04.03.20144.45 Кб82Unit3.dcu
  • #
    04.03.20141 Кб82Unit3.dfm