|
Вопрос # 3 790/ вопрос открыт / |
|
Здравствуйте!
Уважаемые эксперты!
Подскажите, пожалуйста, как можно реализовать такие действия в программе :
Запуск - узнаем текшую дату.
Проверяем, есть ли на диске файл ( назовем его 1.txt).
Если нет, создаем и запишем туда текшую дату.
Если есть, сравним запись из файла с текущей датой.
Запись в файле на 3 дня меньше чем текшая дата выведем сообщение ShowMessage('Прошло три дня')
 |
Вопрос задал: Kyran29 (статус: Посетитель)
Вопрос отправлен: 20 февраля 2010, 03:37
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Ну, как-то так:
uses SysUtils, DateUtils;
procedure CheckDate;
const
FileName = '1.txt';
var
D, Old: TDate;
SL: TStringList;
begin
D:= Date();
SL:= TStringList.Create();
try
try
if not FileExists(FileName)
then begin
SL.Add(DateToStr(D));
SL.SaveToFile(FileName);
end
else begin
SL.LoadFromFile(FileName);
Old:= StrToDate(SL[0]);
if DaysBetween(D, Old) = 3
then ShowMessage('Прошло три дня');
end;
except
ShowMessage('Ошибка при работе с файлом.');
end;
finally
SL.Free();
end;
end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 20 февраля 2010, 09:17
Оценка за ответ: 5
Комментарий к оценке: Поставил бы 5+
Дак.. Нету….
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 21 февраля 2010, 10:30; участников в обсуждении: 2.
|
Егор (статус: 10-ый класс), 20 февраля 2010, 18:58 [#1]:
Цитата (Kyran29):
Запись в файле на 3 дня меньше чем текшая дата
ну тогда в коде маленько подкорректируем:
if DaysBetween(D, Old) >= 3
then ShowMessage('Прошло три дня');
не равно (=), а больше_или_равно (>=)
в остальном, решение красивое, мне понравилось.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
min@y™ (статус: Доктор наук), 21 февраля 2010, 09:17 [#2]:
Цитата (Егор):
не равно (=), а больше_или_равно (>=)
Ты не прав, перечитай ещё раз задание.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Егор (статус: 10-ый класс), 21 февраля 2010, 10:30 [#3]:
хм...
интересная трактовка можно понять и так, и так
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|