Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1211457981
NieL
2008-05-22 16:06
2008.06.15
почему для некоторых EXE не получается извлечь инфу


2-1211353058
NieL
2008-05-21 10:57
2008.06.15
API функция


15-1209827357
Pavia
2008-05-03 19:09
2008.06.15
Удаленный рабочий стол


15-1210141116
TUser
2008-05-07 10:18
2008.06.15
Светофоры и не только


2-1211278899
Сергей
2008-05-20 14:21
2008.06.15
Не подключается объект Screen.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский