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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 11:50   #31
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

Извиняюсь что долго не отвечал. У меня очередной вопрос. Как остановить на определенное время прогу, сделать для нее паузу с помощью процедуры или функции? Таймер в делфи не подходит. Заранее спасибо.
tolprog вне форума Ответить с цитированием
Старый 03.04.2013, 14:04   #32
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

Все, больше не нужно. Я нашел http://www.programmersforum.ru/showthread.php?t=216953, процедура sleep.
tolprog вне форума Ответить с цитированием
Старый 03.04.2013, 18:32   #33
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

У меня вопрос, есть ли такое событие в делфи, которое вызывается если коде загруженной страницы есть заданная строка? Просто не представляю как такое можно гуглить.
tolprog вне форума Ответить с цитированием
Старый 03.04.2013, 19:01   #34
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Похоже, Вы плохо изучили статью Квэнди.
После получения страницы используйте функцию pos для определения наличия требуемой строки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 03.04.2013, 19:16   #35
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

Я это знаю. Я говорю про событие в делфи, которое возникает с любого места, а не только там где if.
tolprog вне форума Ответить с цитированием
Старый 03.04.2013, 19:24   #36
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Такое собыітие разве что самому создать при парсинге страницы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 19:29   #37
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

Я так понял, что лучше везде наставлять ифы.
tolprog вне форума Ответить с цитированием
Старый 03.04.2013, 19:40   #38
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от tolprog Посмотреть сообщение
Я так понял, что лучше везде наставлять ифы.
А везде это где?)
Код:
html:=IdHTTP.GET(url);
if pos('текст',html) > 0 then ShowMessage('Нашли');
bakanaev вне форума Ответить с цитированием
Старый 03.04.2013, 19:44   #39
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от tolprog Посмотреть сообщение
Я так понял, что лучше везде наставлять ифы.
Кучу подобных ифов можно превратить в цикл с ифом от разных строк.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 03.04.2013, 19:56   #40
tolprog
Пользователь
 
Регистрация: 29.03.2013
Сообщений: 33
По умолчанию

В ходе выполнения программы сервер может выдать 2 сообщения: "необходима авторизация" или "введите символы с картинки". И соответственно в каждом try-except понадобится 2 ифа чтобы исключить зацикливания. Код получится в 2 раза больше. Вот к примеру одна из процедур программы:

Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
text:=idhttp1.Get('http://g.meni.mobi/game');
if time>=1800000 then
  begin
  time:=-300000;
  repeat try
           if Pos('<div class="page"><div class="page_game"><div class="page_game_captcha">',Text)>0 then
             begin
             ShowMessage('Captcha. Please, come and input edit captcha.');
             tmr1.enabled:=False;
             Exit;
             end;
           text:=idhttp1.get('http://g.meni.mobi/game/confirm?back_url=%2Fgame%2Fshop%2Fcategory%3Fcategory%3Dscroll&amp;icon=a_staff&amp;key_part=ed97&amp;pc=true&amp;'+'text=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%A1%D0%B2%D0%B8%D1%82%D0%BE%D0%BA+%D0%AD%D0%B2%D1%80%D0%B0&amp;url=%2Fgame%2Fshop%2Fbuy%3Fitem%3Dsc2%26amp%3Bpage%3D1');
           Sleep(3000);
           text:=idhttp1.Get(Copy(text,Pos('/game/confirm2?back_url=',text),143));
           Sleep(3000);
           text:=idhttp1.Get('http://g.meni.mobi/game/profile/use?item=sc2');
           Sleep(3000);
           a:=True;
         except
           a:=False;
         end;
  until a;
  zver_down;
  repeat try
           if Pos('<div class="page"><div class="page_game"><div class="page_game_captcha">',Text)>0 then
             begin
             ShowMessage('Captcha. Please, come and input edit captcha.');
             tmr1.enabled:=False;
             Exit;
             end;
           text:=idhttp1.Get('http://g.meni.mobi/game/campaign');
           Sleep(3000);
           text:=idhttp1.Get('http://g.meni.mobi'+copy(text,Pos('/game/fight/find_mercenary?nc=',text),40));
           Sleep(3000);
           text:=idhttp1.Get(Copy(text,Pos('/game/fight/find_mercenary?m_type=gold&amp;nc=',text),57));
           Sleep(3000);
           text:=idhttp1.Get(Copy(text,Pos('/game/fight/fight?drid=',text),469));
           Sleep(3000);
           a:=True;
         except
           a:=False;
         end;
  until (a)and(Pos(AnsiToUtf8('<div class="header"><h1>Èòîã áîÿ</h1></div>'),Text)>0);
  end;
while StrToInt(text[Pos(AnsiToUtf8('title="Êîë-âî áîåâ" width="15" />'),text)+42])>0 do
  begin
    repeat try
             zver_up;
             text:=idhttp1.Get('http://g.meni.mobi/game/campaign');
             Sleep(3000);
             text:=idhttp1.Get('http://g.meni.mobi'+copy(text,Pos('/game/fight/find_mercenary?nc=',text),40));
             Sleep(3000);
             text:=idhttp1.Get('http://g.meni.mobi'+copy(text,Pos('/game/fight/fight?drid=',text),476));
             Sleep(3000);
             a:=True;
           except
             a:=False;
           end;
    until a;
  end;
tmr1.Interval:=strtoint(Copy(text,Pos(AnsiToUtf8('"Òàéìåð" width="15" />00:'),text)+31,2))*60000+strtoint(Copy(text,Pos(AnsiToUtf8('"Òàéìåð" width="15" />00:'),text)+34,2))*1000;
time:=time+300000;
end;
tolprog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начинающему веб-программисту... Stwl3 Помощь студентам 12 17.08.2012 21:22
Советы начинающему программисту С++ dew-drop Помощь студентам 5 08.03.2012 21:14
Советы начинающему программисту РусланРоккер Помощь студентам 5 01.12.2011 10:11
помогите начинающему программисту alex(21) Паскаль, Turbo Pascal, PascalABC.NET 1 09.06.2009 16:38
помогите начинающему программисту alexs2141 Помощь студентам 3 02.06.2008 10:17