Форум: "Начинающим";
Текущий архив: 2008.06.15;
Скачать: [xml.tar.bz2];
Внизкорректна ли ответственная строка кода? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c