Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 17:33   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Периодически выскакивает ошибка "not valid integer value"

В программе постоянно идут рассчеты в зависимости от текущего времени и иногда (не могу поймать при каких значениях) выскакивает ошибка "not valid integer value". Можно ли каким нибудь способом сделать так, чтобы программа игнорировала ее и не выскакивало сообщение?
Dux вне форума Ответить с цитированием
Старый 05.10.2010, 17:46   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

можно сделать в лоб, используя блок try - except, с пустым except
Но это плохой стиль.
Лучше разобраться. Есть ли преобразования из строки в число?
_Engine_ вне форума Ответить с цитированием
Старый 05.10.2010, 17:49   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Лучше разобраться. Есть ли преобразования из строки в число?
Есть, причем во многих местах и уловить в какой момент времени это происходит нереально, т.к. все завязано на системное время, которое ежесекундно обрабатывается.
Dux вне форума Ответить с цитированием
Старый 05.10.2010, 17:51   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Можно попробовать использовать функцию StrToIntDef или TryStrToInt вместо StrToInt
_Engine_ вне форума Ответить с цитированием
Старый 05.10.2010, 17:52   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Можно попробовать использовать функцию StrToIntDef или TryStrToInt вместо StrToInt
Спасибо, попробую
Dux вне форума Ответить с цитированием
Старый 05.10.2010, 17:56   #6
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

можно к примеру сделать переменную (String к примеру), а в каждом блоке
try
(присваиваем особое значение перед except, после всех операций)
except
если исключка - выводим на экран переменню, она будет из прошлого блока
end;
По крайней мере можно узнать между какими блоками возникла исключка
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 05.10.2010, 18:16   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Проверь ShortTimeFormat('hh:nn:ss');
Часто бывают ошибки, когда первая цифра ноль. ('05:02:03')
В крайнем случае, прогони циклом от '00:00:00' до '23:59:59' с выполнением кода. Если ошибка не выскочит - тогда не знаю... :=))

Еще бывают косяки, если время брать из строки через copy(...).
Лучше использовать DecodeTime().

Последний раз редактировалось _SERGEYX_; 05.10.2010 в 18:18.
_SERGEYX_ вне форума Ответить с цитированием
Старый 07.10.2010, 16:16   #8
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Что самое интересное в тексте ошибки не показывается значение, в результате которого она возникает. дословный текст:

" is not a valid integer value - причем впереди стоят две кавычки
Dux вне форума Ответить с цитированием
Старый 07.10.2010, 16:34   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Что самое интересное в тексте ошибки не показывается значение
Оно показываетя
Цитата:
причем впереди стоят две кавычки
внутри которых находится это самое значение.
В данном случае это пустая строка.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.10.2010, 16:44   #10
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Это то и непонятно, пытаюсь разобраться откуда может появиться значение равное нулю
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка " is not a valid floating point value " (не правильная плавающая величина точки) kta87 Помощь студентам 5 27.09.2012 19:37
Ошибка '' is not valid integer value svobodys Помощь студентам 4 12.12.2011 22:49
Ошибка(оконная а не компилятора) "is not a valid integer value" sinobithug Помощь студентам 6 14.08.2010 22:49
GetTickCount, ошибка "is not a valid integer value" Zeraim Общие вопросы Delphi 3 26.01.2010 19:11
при пустой ячейке выскакивает "is not a valid floating point value" ПОМОГИТЕ serserser Помощь студентам 17 14.11.2007 07:46