Заданице: В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени.
Код:
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;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button5Click(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.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.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Memo1.Clear;
// Сделать невидимой кнопку "Ввести запись"
nzap:=0;
Button1.Hide;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.clear;
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
memo1.Clear;
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.Button6Click(Sender: TObject);
begin
form1.Close;
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;
end.
Admin: Пользуемся тегами!!!
У меня вопрос по баттону5. Где-то ошибка. Кнопка то сохраняет какую-то каляку-маляку, то вообще ничего не сохраняет.
Буду рад любой помощи.