unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls,
ExtCtrls,Menus;
type obmen=RECORD
name:string;
kyrs1:integer;
kyrs2:integer;
adres :string;
tel:word;
end;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
LabeledEdit1: TLabeledEdit;
OpenDialog1: TOpenDialog;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure LabeledEdit1Change(Sender: TObject);
private
function FindMinSelIndex: integer;
function FindMaxBuyIndex: integer;
public
end;
var
Form1: TForm1;
x: array [0..100] of obmen;
i: integer;
j:array [0..100] of obmen;
f2: textfile;
f3: file;
f4:file of integer;
f5:file of char;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0, 0] := 'Название';
StringGrid1.Cells[1, 0] := 'Курс покупки';
StringGrid1.Cells[2, 0] := 'Курс продажи';
StringGrid1.Cells[3, 0] := 'Адрес';
StringGrid1.Cells[4, 0] := 'Телефон';
end;
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
StringGrid1.RowCount := StrToInt(LabeledEdit1.Text) + 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
i := FindMinSelIndex;
ShowMessage(StringGrid1.Cells[0, i] + ', ' + StringGrid1.Cells[3, i] + ', ' + StringGrid1.Cells[4, i]);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
i := FindMaxBuyIndex;
ShowMessage(StringGrid1.Cells[0, i] + ', ' + StringGrid1.Cells[3, i] + ', ' + StringGrid1.Cells[4, i]);
end;
procedure TForm1.Button3Click(Sender: TObject); //ЭКСПОРТ
var f:textfile;
j:integer ;
x:integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
rewrite(f);
writeln(f,'Название / Курс покупки / Курс продажи/ Адрес / Телефон');
for j:=1 to i do
write(f,x[j-0].name+' ');
write(f,x[j-1].kurs1+' ');
write(f,x[j-1].kyrs2+' ');
write(f,x[j-1].adres+' ');
writeln(f,x[j-1].tel+' ');
end;
closefile(f);
end;
procedure TForm1.Button4Click(Sender: TObject); //ИПОРТ
var j,obmen:integer; f:textfile; s:string;
j:=1;
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName); Reset(f);
readln(f, s);
//не находит или не удаляет пробелы
//showmessage(s);
s:='';
while not eof(f) do begin
readln(f, s);
//showmessage(s);
obmen:=UTF8Pos(' ', s);
x[j].name :=UTF8Copy(s,1,obmen-1); // showmessage('4'+x[j].nommarsh+'g');
UTF8Delete(s, 1, obmen);
// showmessage(s);
obmen:=UTF8Pos(' ', s);
x[j].kyrs1 :=UTF8Copy(s,1,obmen-1);
UTF8Delete(s, 1, obmen);
// showmessage(s);
obmen:=UTF8Pos(' ', s);
x[j].kyrs2:=UTF8Copy(s,1,obmen-1);
UTF8Delete(s, 1,obmen);
// showmessage(s);
// showmessage(s);
obmen:=UTF8Pos(' ', s);
x[j].tel :=UTF8Copy(s,1,obmen-1);
UTF8Delete(s, 1, obmen);
// showmessage(s);
obmen:=UTF8Pos(' ', s);
x[j].adres :=UTF8Copy(s,1,obmen-1);
j:=j+1;
end;
i:=j;
closefile(f);
end;
end;
function TForm1.FindMinSelIndex: integer;
var
i, rc, imin: integer;
begin
imin := 1;
rc := StringGrid1.RowCount;
for i:=2 to rc-1 do
if StrToFloat(StringGrid1.Cells[2, i]) < StrToFloat(StringGrid1.Cells[2, imin]) then
imin := i;
FindMinSelIndex := imin;
end;
function TForm1.FindMaxBuyIndex: integer;
var
i, rc, imax: integer;
begin
imax := 1;
rc := StringGrid1.RowCount;
for i:=2 to rc-1 do
if StrToFloat(StringGrid1.Cells[1, i]) > StrToFloat(StringGrid1.Cells[1, imax]) then
imax := i;
FindMaxBuyIndex := imax;
end;
end.