Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.15;
Скачать: CL | DM;

Вниз

корректна ли ответственная строка кода?   Найти похожие ветки 

 
brother ©   (2008-05-20 11:59) [0]

написал программу, вот и задумался, не возникнит ли какого либо глюка
при выполнении данного кода:
if strtoint(h)>=strtoint(h2)
где  h:=FormatDateTime("hh", now) - постоянно вертится в таймере   интервалом в минуту
     h2- из ini
Скажу, что если их хранить в integer, то это много кода править и вызовов inttostr будет больше нежели 2 вызова strtoint..
Подскажите, а то в случае сбоя придется на работу вечером ехать... а так не хочется)


 
brother ©   (2008-05-20 12:01) [1]

скажу сразу, что if h=h2 не хороший вариант ИМХО


 
Умище   (2008-05-20 12:06) [2]

С какой целью это делается? Проверить 2 числа или определить более позднее/раннее время?


 
brother ©   (2008-05-20 12:07) [3]

да


 
Stas ©   (2008-05-20 12:12) [4]

мож лучше trystrtoint


 
Юрий Зотов ©   (2008-05-20 12:14) [5]

Раз в минуту - это ерунда, на оптимальность можно не обращать внимания.

А вообще - плохой код, конечно. Даже очень плохой. Хотя и рабочий.

1. Зачем делать strtoint(h2) каждый раз, если это можно сделать один раз (при чтении ini) и запомнить?

2. Зачем переводить число в строку, а потом обратно в число? Это очень затратные операции. Целое количество часов можно получить при помощи чистой арифметики, что намного оптимальнее:
Int(Frac(Now) * 24)


 
brother ©   (2008-05-20 12:15) [6]


>  trystrtoint

может и лучше, но h и h2 100% корректно числа строкой


 
Юрий Зотов ©   (2008-05-20 12:16) [7]

Точнее, Trunc(Frac(Now) * 24)


 
brother ©   (2008-05-20 12:23) [8]


> 1. Зачем делать strtoint(h2) каждый раз, если это можно
> сделать один раз (при чтении ini) и запомнить?

там не то, чтобы это хранится...
    case pressa_id of
       1: h2:=kop_time;
       2: h2:=smn_time;
       3: h2:=ptn_time;
    end;
kop_time; smn_time; ptn_time; хранятся в ини

> 2. Зачем переводить число в строку, а потом обратно в число?

а потом постоянно caption:=inttostr(Trunc(Frac(Now) * 24)) лучше?


 
brother ©   (2008-05-20 12:26) [9]

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

> Точнее, Trunc(Frac(Now) * 24)

приму к сведению на будущее...


 
ЮЮ ©   (2008-05-20 12:31) [10]

> эта прога только на месяц

она и сутки не протянет, т.к. после "23" идет "00" :)


 
brother ©   (2008-05-20 12:35) [11]


> она и сутки не протянет, т.к. после "23" идет "00" :)

гы... слава богу она страртует максимум в 21, работает около 10мин и закрывается до следующего дня... Старутет ее кто? а не важно))))


 
brother ©   (2008-05-20 12:39) [12]


> она и сутки не протянет, т.к. после "23" идет "00" :)

да и при чем тут это? О_о


 
ЮЮ ©   (2008-05-21 04:41) [13]

> да и при чем тут это? О_о

а причем тут
 if strtoint(h)>=strtoint(h2)
особеноо при
 работает около 10мин и закрывается до следующего дня

если в ини просочится "23", то блок if cможет сработать только с 23:00 до 23:59.
если вчера запустили в 21.00, а сегодня в 20.59, то опять блок не сработает


 
brother ©   (2008-05-21 05:42) [14]


> если в ини просочится "23", то блок if cможет сработать
> только с 23:00 до 23:59.если вчера запустили в 21.00, а
> сегодня в 20.59, то опять блок не сработает


> она страртует максимум в 21


 
han_malign ©   (2008-05-21 08:47) [15]


> FormatDateTime("hh", now)

- если все строки дополнены до двух символов нулем - то может тогда проще строки сравнивать? :))



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

Текущий архив: 2008.06.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1209726044
lizardy
2008-05-02 15:00
2008.06.15
python


2-1211452478
Павел
2008-05-22 14:34
2008.06.15
TStringList; в Дельфи 6 - где объявить?


2-1211582049
bpegukc
2008-05-24 02:34
2008.06.15
Помогите... множества


15-1209937314
tButton
2008-05-05 01:41
2008.06.15
case n of


15-1209542589
Дмитрий С
2008-04-30 12:03
2008.06.15
Что за база и чем ее можно открыть?