unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    Button3: TButton;
    Button4: TButton;
    Memo2: TMemo;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
private      { Private declarations }
public      { Public declarations }
end;
type
 Tpoezd=record
 date:integer;
 punkt:string[20];
 time:integer;
 Nplace:integer;
 end;
var
   f,f2:textfile;
   fname, fname2:string;
   nomer:integer;
   poezda:array[1..10] of Tpoezd;
var
  Form1: TForm1;



implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.clear;
edit2.clear;
edit3.clear;
edit4.clear;
memo1.Clear;
memo2.Clear;
button1.enabled:=false;
button3.enabled:=false;
nomer:=0;
end;
{создание нового файла данных}
procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.execute then
  begin
   fname:=opendialog1.filename;
   assignfile(f,fname);
   rewrite(f);
   end;
  button1.Enabled:=true;
  button4.Enabled:=true;
end;
{внесение информации о поезде дальнего следования}
procedure TForm1.Button1Click(Sender: TObject);
begin
nomer:=nomer+1;
with poezda[nomer] do
   begin
   date:=strtoint(edit1.text);
   punkt:=edit2.text;
   time:=strtoint(edit3.text);
   Nplace:=strtoint(edit4.text);
   memo1.lines.add('Поезд # '+inttostr(nomer)+', день отправления '
   +inttostr(date)+', в '+punkt+' отправится в '+inttostr(time)+' часов. Кол-во свободных мест = '
   +inttostr(nplace));
   end;
button3.enabled:=true;
end;
{проверка на наличие подходящих рейсов}
procedure TForm1.Button3Click(Sender: TObject);
var dt,t,num,i:integer;
    pt:string;
begin
dt:=strtoint(edit1.text);
pt:=edit2.text;
t:=strtoint(edit3.text);
num:=strtoint(edit4.text);
memo2.clear;
for i:=1 to 10 do begin
  if poezda[i].date=dt then
     if poezda[i].punkt=pt then
        if poezda[i].time>=t then
           if poezda[i].nplace>=num then
              memo2.Lines.Add('поезд №'+inttostr(i)+' отходит в '+inttostr(poezda[i].time)+' часов');
               end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var i:word;
begin
if savedialog1.execute then
begin  fname2:=savedialog1.filename;
assignfile(f2,fname2);
rewrite(f2); end;
for i:=1 to nomer do
with poezda[i] do writeln(f2,i:4,'.',date,punkt,time,Nplace);
closefile(f2);



end;

end.
