unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Type TRaspisanie=Record
      Reis:integer;
      Tip:Integer;
      Vilet:Integer;
      Pynkt:string[50];
      end;
     var
     FileRas: file of TRaspisanie;
     Ft  : TextFile;			        	// Текстовой файл
     Filename,FileNameT:string;
     nzap : integer;
     station:array[1..30] of TRaspisanie;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
Memo1.Clear;
end;

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


procedure TForm1.Button1Click(Sender: TObject);
begin
  nzap:=nzap+1;
  with station[nzap] do
  begin
  Reis:=StrToInt(Edit1.text);
  Tip:=StrToInt(Edit2.text);
  Pynkt:=Edit3.Text;
  Vilet:=StrToInt(Edit4.text);
  Memo1.Lines.Add('nzap : '+InttoStr(nzap)+'  номер рейса : '+InttoStr(Reis)+' тип самолёта : '+InttoStr(Tip)+' время вылета : '+InttoStr(Vilet)+'   пункт назначения : '+Pynkt);
  end;
  write(FileRas,station[nzap]);
  Edit1.Clear;   Edit2.Clear;   Edit3.Clear
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
OpenDialog1.Title :='Open File';
 if OpenDialog1.Execute then
   begin
    FileName:= OpenDialog1.FileName;
    AssignFile(FileRas, FileName);
    Reset(FileRas);
    end;
    nzap:=0;
  while not eof(FileRas) do begin
   nzap:=nzap+1;
     Read(FileRas,station[nzap]);
         with station[nzap] do
         Memo1.Lines.Add('nzap : '+InttoStr(nzap)+'  номер рейса : '+InttoStr(Reis)+' тип самолёта : '+InttoStr(Tip)+' время вылета : '+InttoStr(Vilet)+'   пункт назначения : '+Pynkt);
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var i:word;
begin
If SaveDialog1.Execute then
begin
  FilenameT:=SaveDialog1.Filename;
  AssignFile(Ft ,FilenameT);
  Rewrite(Ft);
end;
  For i:=1 to nzap do
  with station[i] do
  Writeln(FT,i:3,Reis:6,Tip:6,Vilet:6,Pynkt);
  Closefile(FT);
end;

procedure TForm1.Button4Click(Sender: TObject);
 var i,j :  word;
       st : TRaspisanie;
begin
 for i:=1 to nzap-1 do                   // Сортировка массива записей
  for j:=i+1 to nzap do
   if station[i].Vilet > station[j].Vilet then begin
          st:=station[i];
         station[i]:=station[j];
         station[j]:=st;
end;
   Memo1.Clear;
  for i:=1 to nzap do       // Вывод в окно Memo1 отсортированных записей
          with station[i] do
Memo1.Lines.Add(IntToStr(i)+' номер рейса : '+InttoStr(Reis)+' тип самолёта : '+InttoStr(Tip)+' время вылета : '+InttoStr(Vilet)+'   пункт назначения : '+Pynkt);
end;
end.
