 |
Выполнение программы через промежуток времени. - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
16.07.2012, 22:17
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 01.01.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Выполнение программы через промежуток времени.
Здравствуйте, подскажите как сделать так что бы программный код выполнялся каждые 15минут-2часа(рандомно) но не более 30 раз в сутки.
И возможно ли такое вообще?
|
|
|
17.07.2012, 12:57
|
#2
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Выполнение программы через промежуток времени.
Sleep + Условие на колличество выполнений
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
17.07.2012, 18:49
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 20.05.2012
 Сообщений: 25
 Популярность: -1170
 Сказал(а) спасибо: 70
Поблагодарили 20 раз(а) в 15 сообщениях
|
Re: Выполнение программы через промежуток времени.
А можно и гораздо проще на форму таймер кинуть
|
|
|
17.07.2012, 21:44
|
#4
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Выполнение программы через промежуток времени.
Я про цикл забыл написать...
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
17.07.2012, 22:51
|
#5
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: Выполнение программы через промежуток времени.
|
|
|
18.07.2012, 00:56
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 20.05.2012
 Сообщений: 25
 Популярность: -1170
 Сказал(а) спасибо: 70
Поблагодарили 20 раз(а) в 15 сообщениях
|
Re: Выполнение программы через промежуток времени.
|
|
|
18.07.2012, 01:30
|
#7
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: Выполнение программы через промежуток времени.
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Ну низнаю каждому нравится по своему на мой вид зачем писать весь этот громоздкий код когда одним таймером можно отделаться
|
|
 |
|
 |
|
А представь что у тебя кода не 10 строчек, а 10к, таймер может использоваться в 100 местах(допустим) писал ты этот код допустим 3 месяца назад и тут тебе надо что то поправить...
Итого, мы имеем:
1) 100 таймеров на форме, какой из них отвечает за то что тебе надо поправить - неизвестно.
2) 10к строк кода, каждая из которых может менять состояние таймера от того что есть в граф. элементе.
3) Ты не имеешь понятия в какой последовательности выполняется твой код, потому что писал его хз когда...
Ты не знаешь, к чему приведет изменение этого кода(может он связан с кодом в других местах).
PS: Этот "громоздкий код" занимает 2-3 строчки но упрощает твою жизнь значительно. И 10к строчек для нормального проекта это очень мало....
|
|
|
Пользователь сказал cпасибо:
|
|
18.07.2012, 10:46
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 01.01.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Выполнение программы через промежуток времени.
одним таймером однозначно не отделаться..
а вот:
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Sleep + Условие на колличество выполнений
|
|
 |
|
 |
|
вполне подходит, только подскажите пожалуйста как задать это самое условие.
|
|
|
18.07.2012, 12:04
|
#9
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Выполнение программы через промежуток времени.
Давай начнём с рандома. Чтобы вывести рандомное число между 15 минутами (900000мс) и 2 часами (7200000мс) можно заюзать такой код:
Код:
var
s:integer;
begin
s:=900000+random(6300001);
end;
Почему 6300001? Да потому что 7200000-900000=6300000, а функция random(a) выбирает число от 0 до a-1.
Дальше делаем цикл со sleep:
Код:
var
i:integer;
begin
for i:=0 to 29 do
begin
{тут код программы}
Sleep(900000+random(6300001));
end;
end;
29 потому что 30-1-29.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 10:09.
|
 |