18.11.2015, 11:01
|
Прохожий
|
|
Регистрация: 11.10.2015
Сообщения: 8
Версия Delphi: delpphi 10
Репутация: 10
|
|
Что нужно дописать в код,чтобы все работало?
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
Tavt=record
Nmar: integer;
Tipavt: string[20];
Punkt: string[20];
VrOtpr: TDateTime;
VrPr: TDateTime;
end;
Var
Fz:File of Tavt; // Файл типа запись
Ft:TextFile; // Текстовой файл
Avto:array[1..100] of Tavt;// Массив записей
nzap:integer; // Номер записи
FileNameZ, FileNameT : string;// Имя файла
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Memo1.Clear; // Очистка окна редактора Memo1
Memo1.Lines.Add('Лаб.раб.№6 ');
Memo1.Lines.Add('__________________ ___________________________________ ____________________________');
Memo1.Lines.Add('№ маршр | тип авт | пункт наз | время отпр | время приб ');
Button1.Hide; // Сделать невидимой кнопку "Ввести запись"
nzap:=0;
end;
procedure TForm1.Button1Click(Sender: TObject); // Ввести новую запись
begin
nzap:=nzap+1;
with Avto[nzap] do begin
Nmar:=StrToInt(Edit1.Text);
Tipavt:=Edit2.Text;
Punkt:=Edit3.Text;
VrOtpr:=StrToTime(Edit4.Text);
VrPr:=StrToTime(Edit5.Text);
Memo1.Lines.Add(IntToStr(Nmar)+' '+Tipavt+' '+Punkt+' '
+timeToStr(VrOtpr)+' '+timeToStr(VrPr));
end;
Write(fz,Avto[nzap]); // Запись в файл
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
end;
procedure TForm1.Button2Click(Sender: TObject); // Создание нового файла записей
begin
OpenDialog1.Title :='Создать новый файл'; // Изменение заголовка окна диалога
if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла
begin
FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Fz,FileNameZ); // Связывание файловой переменной Fz c именем файла
Rewrite(Fz); // Создание нового файла
end;
Button1.Show;
end;
procedure TForm1.Button3Click(Sender: TObject); // Открыть существующий файл
begin
if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла
begin
FileNameZ:=OpenDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла
Reset(Fz); // Открытие существующего файла
end;
while not eof(fz) do begin
nzap:=nzap+1;
Read(fz,Avto[nzap]); // Чтение записи из файла
with Avto[nzap] do
Memo1.Lines.Add(IntToStr(Nmar)+' '+Tipavt+' '+Punkt+' '
+TimeToStr(VrOtpr)+' '+TimeToStr(VrPr));
end;
Button1.Show; // Сделать видимой кнопку "Ввести запись"
end;
procedure TForm1.Button5Click(Sender: TObject);// Сохранение результатов в текстовом файле
var i:word;
begin
if SaveDialog1.Execute then // Выполнение стандартного диалога выбора имени файла
begin
FileNameT:=SaveDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Ft, FileNameT); // Связывание файловой переменной Ft c именем файла
Rewrite(Ft); // Открытие нового текстового файла
end;
for i:=1 to nzap do
with Avto[i] do Writeln(ft,
IntToStr(Nmar)+' '
+Tipavt+' '
+Punkt+' '
+TimeToStr(VrOtpr)+' '
+TimeToStr(VrPr));
CloseFile(Ft); // Закрытие текстового файла
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку "Сlose"
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку (закрыть крестик)
end;
end.
|