Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Нужна помощь с StringRegExpReplace ( "test", "PATTERN-ом", "\1").

Ответить
Настройки темы
[решено] Нужна помощь с StringRegExpReplace ( "test", "PATTERN-ом", "\1").

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: ikif
Дата: 28-07-2009
Доброе утро.
Помогите прицепиться к нужным данным для StringRegExpReplace.

Уровень и силу получаю, вот все остальное не получается :

читать дальше »

Код: Выделить весь код
#include <IE.au3>

$oIE = _IECreate ("http://kokto.ru/")
$oForm = _IEFormGetCollection ($oIE, 0)
$email = _IEFormElementGetCollection ($oForm, 1)
$pass= _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($email, "abastrakciya@mail.ru")
_IEFormElementSetValue ($pass, "test123")
_IEFormSubmit ($oForm)

_IELoadWait ($oIE)
_IEImgClick ($oIE, "but_bodalka_p.png", "src")			;Idem v Bodalku

While 1									;Na4inaem iskat' Jertvu
	_IELoadWait ($oIE)
	$oForm = _IEFormGetCollection ($oIE, 0)				;Ishem Jertvu
	_IEFormSubmit ($oForm)
	$KodHtml=_IEDocReadHTML($oIE)					;Proveryaem nashli li kogo ?
	$pattern="(?s).*?Никого (.*?) нашли.*"
	$Kri = StringRegExpReplace($KodHtml, $pattern, "\1")	
	If $Kri <> "не" Then							;Esli nashli , to ne ishem dal'she
		ExitLoop 
	EndIf
WEnd
$KodHtml=_IEDocReadHTML($oIE)
$pattern='(?s).*?<TD class="c3 center">(.*?)<TD.*'
$Lvl = StringRegExpReplace($KodHtml, $pattern, "\1")	;lvl

$pattern="(?s).*?<TD class=c4>(.*?)</TD.*"
$Sila = StringRegExpReplace($KodHtml, $pattern, "\1")	;Sila

$pattern='(?s).*?SPAN></TD><TD>(.*?)</TD></TR><TR><TD><IMG class=ico alt=Ловкость src="images/ico.*'
$Zashita = StringRegExpReplace($KodHtml, $pattern, "\1") ;Zashita

$pattern="(?s).*?<TD>(.*?)</TD></TR><TR class=row_1><TD><IMG class=ico alt=Масса.*"
$Lovkost = StringRegExpReplace($KodHtml, $pattern, "\1")	;Lovkost'

$pattern="(?s).*?<TD>(.*?)</TD></TR><TR class=row_1><TD><IMG class=ico alt=Слава.*"
$Master = StringRegExpReplace($KodHtml, $pattern, "\1")

MsgBox(0, "Lvl", $Lvl)
MsgBox(0, "Sila", $Sila)
MsgBox(0, "Zashita", $Zashita)
MsgBox(0, "Lovk", $Lovkost)
MsgBox(0, "Master", $Master)

Отправлено: 06:33, 27-07-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


чего-то не ищет, лучше выложи готовый HTML

Отправлено: 16:08, 27-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема выложить готовый HTML ,так как при сохранении он меняется, да и AUTOIt видит все по другому при прочтении странички с помощью _IEDocReadHTML .
Уже работает.
Kто то заходил и одел кулон, блокирующий атаки.
Форум то открытый

Последний раз редактировалось ikif, 27-07-2009 в 22:12.


Отправлено: 18:45, 27-07-2009 | #3


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата ikif:
Уровень и силу получаю, вот все остальное не получается »
Вот, пробуй:
читать дальше »
Код: Выделить весь код
#include <IE.au3>

$oIE = _IECreate ("http://g1.botva.ru/")
$oForm = _IEFormGetCollection ($oIE, 0)
$email = _IEFormElementGetCollection ($oForm, 1)
$pass= _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($email, "abastrakciya@mail.ru")
_IEFormElementSetValue ($pass, "test123")
_IEFormSubmit ($oForm)

_IELoadWait ($oIE)
_IEImgClick ($oIE, "but_bodalka_p.png", "src")            ;Idem v Bodalku

While 1                                    ;Na4inaem iskat' Jertvu
    _IELoadWait ($oIE)
    $oForm = _IEFormGetCollection ($oIE, 0)                ;Ishem Jertvu
    _IEFormSubmit ($oForm)
    $KodHtml=_IEDocReadHTML($oIE)                    ;Proveryaem nashli li kogo ?
    $pattern="(?s).*?Никого (.*?) нашли.*"
    $Kri = StringRegExpReplace($KodHtml, $pattern, "\1")    
    If $Kri <> "не" Then                            ;Esli nashli , to ne ishem dal'she
        ExitLoop 
    EndIf
Sleep(1000)
WEnd

$KodHtml=_IEDocReadHTML($oIE)

$pattern='(?s).*?<TD class="c3 center">(.*?)<TD.*'
$Lvl = StringRegExpReplace($KodHtml, $pattern, "\1")    ;lvl

$pattern_Sila="(?si).*Сила.*c4>(\d*).*"
$Sila = StringRegExpReplace($KodHtml, $pattern_Sila, "\1")

$pattern_Masterstvo="(?si).*Мастерство.*?(\d*)</TD></TR>.*"
$Masterstvo = StringRegExpReplace($KodHtml, $pattern_Masterstvo, "\1")

$pattern_Lovkost="(?si).*Ловкость.*?(\d*)</TD></TR>.*"
$Lovkost = StringRegExpReplace($KodHtml, $pattern_Lovkost, "\1")

$pattern_Zaschita="(?si).*Защита.*?(\d*)</TD></TR>.*"
$Zashita = StringRegExpReplace($KodHtml, $pattern_Zaschita, "\1")

$pattern_Massa="(?si).*Масса.*?(\d*)</TD></TR>.*"
$Massa = StringRegExpReplace($KodHtml, $pattern_Massa, "\1")

$pattern_Slava="(?si).*Слава.*<TD class=center>(\d*).*"
$Slava = StringRegExpReplace($KodHtml, $pattern_Slava, "\1")

$pattern_Protivnik='(?si).*<DIV class="blockTitle2 ">(.*?)</DIV>.*'
$Protivnik = StringRegExpReplace($KodHtml, $pattern_Protivnik, "\1")


MsgBox(0, $Protivnik,"Уровень: "&$Lvl&@CRLF&"Сила: "&$Sila&@CRLF&"Защита: "&$Zashita&@CRLF&"Ловкость: "&$Lovkost&@CRLF&"Macca: "&$Massa&@CRLF&"Мастерство: "&$Masterstvo&@CRLF&"Слава: "&$Slava)


Несколько раз пробовал, вроде работает, но только при определенных условиях (какие у тебя в цикле прописаны, поэтому скрипт тебе нужно улучшать. Ибо теперь у меня появляется счетчик - и текст: Вы несете службу..., а что оно означает я не знаю... И соответственно, код страницы обрабатывается неправильно!)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 01:05, 28-07-2009 | #4


Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я учитываю в коде "Вы несете службу..."
Просто не стал выкладывать весь бардак.
Я застревал именно на "Уровень и силу получаю, вот все остальное не получается ".
Огромное спасибище.
Перед закрытием темы [решено] немного вопросов по теме:
Что они делают:
1) .* -
2) (\d*) -
3) (?:.*) -
4) (.*?) -
5) .*? -
6) (.*) -

Отправлено: 02:23, 28-07-2009 | #5


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата ikif:
Что они делают: »
. - означает любой символ.
* - означает любое количество екземпляров предшествующего елемента (в том числе и нулевое).
(\d*) - означает захватить групировку из любого количества цифр.
(?:.*) - не захватывать групировку (символы могут быть сдесь любыми, на что указывает .*)
.*? - вопросительный знак сдесь это лекарство от жадности. Вот посмотри пример, и подумай в чем разница:
Код: Выделить весь код
;Пример 1
$1=StringRegExpReplace("текст 1234 текст 5678 текст",".*? (\d\d\d\d).*","\1")
;Пример 2
$2=StringRegExpReplace("текст 1234 текст 5678 текст",".* (\d\d\d\d).*","\1")
MsgBox(0,"Пример", "1 случай:   "&$1&@CRLf&"2 случай:   "&$2)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 12:31, 28-07-2009 | #6


Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо огромное. [решено]

Отправлено: 20:06, 28-07-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Нужна помощь с StringRegExpReplace ( "test", "PATTERN-ом", "\1").

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
Не получается найти все выпуски "Хакер"+"спец"+"железо" verdix Хочу все знать 5 29-11-2008 15:19
Приоритет в диспетчере: "реального времени", "средний", "выше среднего" alhimik PC Хочу все знать 3 28-11-2006 05:29
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход