Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

DateTimeToStr - Integer Overflow   Найти похожие ветки 

 
NAlexey   (2003-04-30 11:00) [0]

Всегда ли необходимо инициализировать TDateTime? Иногда случается что попытка DateTimeToStr неинициализированной даты приводит к IntegerOverflow т.е:
var
ADate: TDateTime;
begin
DateTimeToStr(ADate);
//Integer overflow ^
end;
Получается что дата не равна нулю, а равна непонятно чему. У меня могут в процедуру приходить такие вот даты, как там проверять что она находится не в диапазоне?


 
MBo   (2003-04-30 11:07) [1]

локальная переменная? Никто не гарантирует, что там не мусор


 
V-A-V   (2003-04-30 11:09) [2]

При хорошем стиле вообше-то надо все переменные иниацелизировать,
тогда глюков не будет.
Компилятор, если ты не определил переменную присваевает ей бог знает какое значение...


 
NAlexey   (2003-04-30 11:16) [3]

>локальная переменная? Никто не гарантирует, что там не мусор
Локальная, но представим что у меня из многих мест вызывается одна процедура, и как в ней проверить, что пришел IntegerOwerflow. Вот например так будет корректно:
if not (ADate < MinDouble) and (ADate > MaxDouble) then ...
Или как?


 
MBo   (2003-04-30 11:20) [4]

что-то я тебя не пойму.
Раз уж неаккуратно пишешь, в try-except заключи DateTimeToStr


 
Anatoly Podgoretsky   (2003-04-30 11:31) [5]

А какой смысл в данной операции DateTimeToStr(ADate);, получить низвестно что, даже в случаи отсутствия осключения?


 
NAlexey   (2003-04-30 11:38) [6]

Необходимо так: если в качестве аргумента пришло недопустимое число, то приравнивать дату к нулю и выполнять дальнейшие действия.
Попробую перефразировать запрос: type TDateTime = type Double;
Так? Так. Но и не совсем так, значение далеко не MaxDouble а IntegerOverflow возникает. Так вот какая может быть максимальная и минимальная дата, чтобы с ней сравнивать и если значение не попадает в интервал делать её равной 0?


 
NAlexey   (2003-04-30 11:51) [7]

Всё, спасибо нашел...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
4-34638
[lamer]Barmaglot
2003-03-11 09:15
2003.05.12
LVM_SetItemcount


6-34529
кондратий
2003-03-12 20:27
2003.05.12
Cookies, History, Temporary Internet Files


1-34480
DDDeN
2003-04-25 16:56
2003.05.12
Передвижение TPanel по координатным осям


4-34653
JoSHUA
2003-03-12 15:28
2003.05.12
Убийство


7-34622
Igor_Nickolaev
2003-03-18 16:43
2003.05.12
Можно ли сохранить clipboard на диск?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский