![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компоненты TOpenDialog и TSaveDialog [D7, XP]
Boortwint © (2010-04-02 13:52:00)Дали мне тут задание задание.
Создать програмулину для работы на автобусной станции.
Суть ее заключается в том, чтобы с помомощью этой программы вбить номер маршрута автобуса, его тип, пункт назначения, время отправления и время прибытия.
Необходимо вывести маршрут, который занимает минимальное время. Отсюда первый вопрос: какой тип данных нужно использовать, чтобы введенное в edit число преобразовывалось во время?. Я использовал DateTime, но число у меня преобразовывалось в дату, т.е., к примеру, 02.04.2010, а оно мне не надо. Нужно время.
Информация должна сохраняться в отдельном txt файле.
Все чего мог я добиться - это создать 2 кнопки: "открытие" и "создание" файла. Необходимо еще придумать как создать кнопку сохранить, но до меня не доходит как это сделать.
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; //объявления массива типа Tavt
nzap:integer;
FileNameZ, FileNameT : string;
var
Form1: TForm1;
Выше приведены все типы переменных, которые я использовал
Кнопка ввода информации в файл:
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:=StrToInt(Edit4.Text);
VrPr:=StrToInt(Edit5.Text);
Memo1.Lines.Add(IntToStr(Nmar)+' '
+Tipavt+' '
+Punkt+' '
+DateToStr(VrOtpr)+' '
+DateToStr(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); /
Rewrite(Fz);
end;
Кнопка открытия файла
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
FileNameZ:= OpenDialog1.FileName; // возвращение имени дискового файла
AssignFile(Fz, FileNameZ); // связывание файловой переменной с именем файла
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+' '
+DateToStr(VrOtpr)+' '
+DateToStr(VrPr));
end;
end;
Возникает вопрос: как сохранять все это дело в файле и как осуществить выборку наименьшего времени пути до пункта назначения. Буду рад любой помощи. Заранее спасибо.
Boortwint (2010-04-02 18:09:00) [21]Стебаться мы умеем, это да))
Ну, благо пару полезных постов я нашел. Спасибо.
Anatoly Podgoretsky (2010-04-02 17:54:00) [22]
> Дядя Толя, да у меня ни button1, ни button2 нету... Каюсь,
> код смотреть не стал после:
Так сделай, чего же расстраиваться.
Jeer (2010-04-02 15:32:00) [23]
> Странно, что автора итрересуют не графы и алгоритм поиска
> оптимального маршрута а ввод/вывод.
Так он и это не умеет, а ты про оптимизацию, графы..
Dennis I. Komarov (2010-04-02 15:29:00) [24]
> Не пропадет, открыть у тебя на button3
Дядя Толя, да у меня ни button1, ни button2 нету... Каюсь, код смотреть не стал после:
> Все чего мог я добиться - это создать 2 кнопки: "открытие"
> и "создание" файла. Необходимо еще придумать как создать
> кнопку сохранить, но до меня не доходит как это сделать.
>
По логике открыть должна быть первой... ;)
Anatoly Podgoretsky (2010-04-02 15:23:00) [25]
> Дык тогда "Открыть" пропадет...
Не пропадет, открыть у тебя на button3
Демо (2010-04-02 15:12:00) [26]
VrOtpr:=StrToInt(Edit4.Text);
VrPr:=StrToInt(Edit5.Text);
А почему к целому преобразуешь?
Ведь функция для преобразования даты/времени есть - StrToDate, например?
oldman (2010-04-02 15:10:00) [27]
> Я использовал DateTime, но число у меня преобразовывалось
> в дату, т.е., к примеру, 02.04.2010, а оно мне не надо.
Оно не преобразовывалось, оно так выводилось на экран.
Поверь, время там тоже есть, но прячется.
И. Павел (2010-04-02 15:05:00) [28]Странно, что автора итрересуют не графы и алгоритм поиска оптимального маршрута а ввод/вывод.
Dennis I. Komarov (2010-04-02 15:04:00) [29]
> Boortwint © (02.04.10 13:52)
http://yandex.ru/yandsearch?text=%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F+%D0%B3%D1%80%D0%B0%D1%84%D0%BE%D0%B2+%D0%B8+%D0%B5%D0%B5+%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&stpar2=%2Fh1%2Ftm7%2Fs1&stpar4=%2Fs1&stpar1=%2Fu1&stpar3=%2Fk2%2Ftc29%2Fnc1&lr=11
Dennis I. Komarov (2010-04-02 15:02:00) [30]
> Button 1.Caption := 'Сохранить';
Дык тогда "Открыть" пропадет...
Anatoly Podgoretsky (2010-04-02 14:42:00) [31]> Boortwint (02.04.2010 13:52:00) [0]
Button1.Caption := 'Сохранить';