Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Отключить сообщение Debugger EConvertError Найти похожие ветки
← →
КиТаЯц © (2005-09-21 07:09) [0]Проверка корректности вводимой даты. Делаю так
function DateCorrect(InDate: string): boolean;
begin
try
StrToDate(InDate);
result:= True;
except
result:= False;
end;
end;
Вроде все работает, но... Одно неудобство. Приложение запускается из под Дельфи. Работаю с включенным отладчиком (нада). Функция вызывается в цикле достаточно часто, и, каждый раз, при некорректном формате даты отладчик стопорит процесс.
Как отключить сообщение отладчика об ошибке? Что написать? Или есть стандартная функция проверки корректности даты?
Спасибо.
← →
ShiFT (2005-09-21 07:24) [1]При Try-Except незапуская под отладчиком.
← →
КиТаЯц © (2005-09-21 07:40) [2]> ShiFT (21.09.05 07:24) [1]
Спасибо.
Постараюсь перефразировать вопрос: как сделать чтобы НЕ отключая отладчик проверить корректность вводимой даты так чтобы отладчик не стопорил процесс при таки некорректной дате?
← →
ANB © (2005-09-21 07:51) [3]Можно отключить остановку отладчика на ошибках. Не очень удобно, но помогает.
← →
ЮЮ © (2005-09-21 08:59) [4]Проверить на корректность самому. Не так уж и сложно. Вот, например, функция из DateUtils:
function IsValidDate(const AYear, AMonth, ADay: Word): Boolean;
begin
Result := (AYear >= 1) and (AYear <= 9999) and
(AMonth >= 1) and (AMonth <= 12) and
(ADay >= 1) and (ADay <= DaysInAMonth(AYear, AMonth));
end;
Осталось лиши "распарсить" твою строку: выделить год, день и месяц.
З.Ы. StrToIntDef и Val позволят "конвертировать" строку в целое без Exception
← →
КиТаЯц © (2005-09-21 09:59) [5]> ЮЮ © (21.09.05 08:59) [4]
Спасибо. То что надо. :)
← →
begin...end © (2005-09-21 12:45) [6]> КиТаЯц © (21.09.05 07:09)
> Или есть стандартная функция проверки корректности даты?
Есть. TryStrToDate.
← →
КиТаЯц © (2005-09-21 14:47) [7]>begin...end © (21.09.05 12:45) [6]
!!! Спасибо :)
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.012 c