Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.08.2010, 11:25
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию Парсить setTimeOut на sleep

На странице есть код
PHP код:
<script language=javascript>
if(
self==parentself.window.location='sites.php';
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
    a, a:link, a:visited { color: #057fac; text-decoration: none; font-family: Verdana; font-size: 13px; }
    a:hover {color: #f00; text-decoration: none; font-family: Verdana; font-size: 13px; }
</style>
</head>
<body>
    <script type="text/javascript">
    setTimeout('location.replace("vls.php?view=ok")', 20000);
    </script> 
как отпарсить setTimeout('location.replace("vls.php?view=ok")', 20000); и поставить это время на sleep
Ответить с цитированием
  #2  
Старый 16.08.2010, 11:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  i: Integer;
  s: String;
begin
  s:='setTimeout(''location.replace("vls.php?view=ok")'',';
  i:=Pos(s, Memo1.Text);
  if i>0 then
  begin
    s:=Copy(Memo1.Text, i+Length(s), Length(Memo1.Text));
    i:=Pos(')', s);
    if i>0 then
    begin
      s:=Trim(Copy(s, 1, i-1));
      i:=StrToIntDef(s, -1);
      if i>0 then Sleep(i);
    end;
  end;
end;
в Memo1 должен находиться код
Ответить с цитированием
  #3  
Старый 16.08.2010, 13:02
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Учимся использовать:
Copy, Delete, Pos, PosEx
Ответить с цитированием
  #4  
Старый 16.08.2010, 13:08
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

А если без мемо, просто я через idhttp.get получаю код и с ним работаю
Цитата:
pesi
Учимся использовать:
Copy, Delete, Pos, PosEx
Сообразить не могу просто как на него парсинг поставить
Ответить с цитированием
  #5  
Старый 16.08.2010, 14:04
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Код:
var
	Otvet: String;
begin
	Otvet:=  idhttp1.get(); // Otvet теперь содержит код страницы с ним и работаем

end;
Ответить с цитированием
  #6  
Старый 16.08.2010, 14:39
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

то есть мне прасер нужно будет поставить только в низу полседнего Otvet и потом передать в слип?
сделал так
Otvet1:= IdHttp1_Pay.GET('' + url+Ur);
while Pos('setTimeout(''location.replace("vls.php?view=o k")'',',Otvet1)>0 do begin
Otvet1:=Trim(Copy(Otvet1, 1, i-1));
i:=StrToIntDef(Otvet1, -1);
if i>0 then Sleep(i);
Form2.Listbox.delete(3);
но дальше не продолжает работать, а без парсера работает

Последний раз редактировалось bulldog, 16.08.2010 в 14:47.
Ответить с цитированием
  #7  
Старый 16.08.2010, 15:21
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Код:
function SetTimeOutJS(Str: String): Integer;
var
  I: Integer;
  S: String;
begin
  S:='setTimeout(''location.replace("vls.php?view=ok")'',';
  I:= Pos(S, Str);
  if I>0 then
  begin
    S:= Copy(Str, I+Length(S), Length(Str));
    I:= Pos(')', S);
    if I>0 then
    begin
      S:= Trim(Copy(S, 1, I-1));
      I:= StrToIntDef(S, -1);
      if I>0 then 
	Result:= I
      else
	Result:= 0;
    end;
  end;
end;

Код:
var
	Otvet: String;
	I: Integer;
begin
	Otvet:=  idhttp1.get(); // Otvet теперь содержит код страницы с ним и работаем
	I:= SetTimeOutJS(Otvet);
	Sleep(I);
end;
Ответить с цитированием
  #8  
Старый 16.08.2010, 15:28
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

Спс, как всегда выручил, сейчас попробую
А теперь работает так как будто sleep нету, в чём может проблема быть?
Пардон ошибся

Последний раз редактировалось bulldog, 16.08.2010 в 16:01.
Ответить с цитированием
  #9  
Старый 16.08.2010, 16:01
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

как это?
функция возвращает "20000" из приведенного вами текста
Ответить с цитированием
  #10  
Старый 16.08.2010, 16:41
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

Да я просто в место Otvet1 ovet написал, всё работает, спс Тема закрыта
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter