unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
DateTimePicker3: TDateTimePicker;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type TRecord = record
City:string[20];
Code:integer;
Date:TDateTime;
Time:integer;
Tarif:extended;
Phone1:string[20];
Phone2:string[20];
Summa:extended;
end;

type TCity = record
City:string[20];
Time:integer;
Summa:extended;
end;
var
Fz:file of TRecord;
Ft:TextFile;
Records:array[1..100] of TRecord;
Cities:array[1..100] of TCity;
nzap:integer;
ncity:integer;
FileNameZ, FileNameT:string;
var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Memo1.Clear;
Button1.Hide;
nzap:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
nzap:=nzap+1;
with Records[nzap] do
begin
City:=Edit1.Text;
Code:=StrToInt(Edit2.Text);
Date:=DateTimePicker3.Date;
Time:=StrToInt(Edit4.Text);
Tarif:=StrToFloat(Edit5.Text);
Phone1:= Edit6.Text;
Phone2:= Edit7.Text;
Summa:=Time*Tarif;
Memo1.Lines.Add('Город:'+ City +' '+
'Код:'+IntToStr(Code) + ' ' +
'Дата:'+DateToStr(Date) + ' ' +
'Время:'+IntToStr(Time) + ' ' +
'Тариф'+FloatToStr(Tarif) + ' ' +
'Телефон1:'+Phone1 + ' ' +
'Телефон2:'+Phone2 + ' ' +
'Сумма:'+FloatToStr(Summa));
end;
Write(fz,Records[nzap]);
Edit1.Text:='';
Edit2.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Title:='Создать новый файл';
if OpenDialog1.Execute then
begin
FileNameZ:=OpenDialog1.FileName;
AssignFile(fz,FileNameZ);
Rewrite(fz);
Memo1.Clear;
end;
Button1.Show;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
FileNameZ := OpenDialog1.FileName;
AssignFile(fz,FileNameZ);
Reset(fz);
end;
Memo1.Clear;
nzap:=0;
while not eof(fz) do
begin
nzap:=nzap+1;
Read(fz,Records[nzap]);
with Records[nzap] do
Memo1.Lines.Add('Город:'+ City+' '+
'Код:'+IntToStr(Code) + ' ' +
'Дата:'+DateToStr(Date) + ' ' +
'Время:'+IntToStr(Time) + ' ' +
'Тариф'+FloatToStr(Tarif) + ' ' +
'Телефон1:'+Phone1 + ' ' +
'Телефон2:'+Phone2 + ' ' +
'Сумма:'+FloatToStr(Summa));
end;
Button1.Show;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
FileNameT:=SaveDialog1.FileName;
// AssignFile(ft,FileNameT);
// Rewrite(ft);
end;
Memo1.Lines.SaveToFile(FileNameT);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(fz);
end;

procedure TForm1.Button4Click(Sender: TObject);
var
i,j:integer;
find:boolean;
begin
Memo1.Clear;
ncity:=0;
find:=false;
if nzap <> 0 then
begin
for i:=1 to nzap do
begin
if ncity = 0 then
begin
ncity:=ncity+1;
Cities[ncity].City := Records[i].City;
Cities[ncity].Time := Records[i].Time;
Cities[ncity].Summa := Records[i].Summa;
end

else
begin
for j:=1 to ncity do
begin
find := false;
if Cities[j].City = Records[i].City then
begin
Cities[j].Time := Cities[j].Time + Records[i].Time;
Cities[j].Summa := Cities[j].Summa + Records[i].Summa;
find := true;
break;
end;
end;

if not find then
begin
ncity:=ncity+1;
Cities[ncity].City := Records[i].City;
Cities[ncity].Time := Records[i].Time;
Cities[ncity].Summa := Records[i].Summa;
end;
end;
end;

for j:=1 to ncity do
with Cities[j] do
Memo1.Lines.Add('Город:'+ City+' '+
'Время:'+IntToStr(Time) + ' ' +
'Сумма:'+FloatToStr(Summa));
end;
end;

end.
Соседние файлы в папке междугороднее АТС
  • #
    15.06.20143.28 Кб70project2.dsk
  • #
    15.06.2014876 б70project2.res
  • #
    15.06.201410.64 Кб70unit1.dcu
  • #
    15.06.201451 б70unit1.ddp
  • #
    15.06.20142.56 Кб70unit1.dfm
  • #
    15.06.20145.34 Кб70unit1.pas
  • #
    15.06.2014240 б70пароыапо