Что нового

Поиск строки по двум словам и переменными между ними

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
Нужно найти строку с двумя словами, между которыми может быть пара переменных тройка цифро-символов...

Код:
$fnd1=("слово1"&...&"слово2");
	$fnd1OK=StringInStr($sHTML,$fnd1,3)
	              If $fnd1OK <> 0 then
				MouseClick("left", 87, 37, 1, 0) ;
				Sleep(200)
                      EndIf

Вот между слово1 и слово2 троеточие, тут что то надо вставить, а я допереть не могу.
Например, если искать "космопорт 100|07 Ортредисов",то $fnd1=("космопорт"&...&"Ортредисов"); а что вставить вместо троеточия так, чтобы шаблон смог найти строку "космопорт 100|07 Ортредисов"
 
A

Alofa

Гость
Код:
Local $fnd1[2] = ['космопорт', 'ортредисов']
$sText = 'космопорт 100|07 Ортредисов'

If StringInStr($sText, $fnd1[0]) And StringInStr($sText, $fnd1[1]) Then MsgBox(262144, Default, $sText)
; И Л И
If StringRegExp($sText, '(?i)' & $fnd1[0] & '.+' & $fnd1[1]) Then MsgBox(262144, Default, $sText)


OffTopic:
DStalker в будущем указывайте работоспособный кусок скрипта.
 
Автор
DStalker

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
код рабочий ошибка нерабочисти на $sHTML, просто $sHTML-это ссылка на локальный файл с текстом который и нужно проверить маской на соответствие, т.о. небыло смысла его тянуть весь из за размеров..

Ваш пример мне помог понять где у меня косяк. Т.е. сам пример не подошёл, но тем самым я понял где косяк...
$sHTML итый файл нужно проверить маской-шаблоном на соответствие, частный случай маски 'космопорт 100|07 Ортредисов', общий же случай 'космопорт????????Ортредисов' . Затыка оказалась в StringInStr, которая не читает регуляярные выражения :laugh: и тем самым шаблон, написанный правильно он не видит. поменяв же на StringRegExp
все сразу заработало. Спасибо. Выкладываю корректный код после исправления:
Было:

Код:
$sHTML=('http://autoit-script.ru/index.php');файл index.php с текстом который и нужно проверить маской на соответствие
$fnd1=("космопорт "&...&" Ортредисов");тут в троеточии нужна маска
    $fnd1OK=StringInStr($sHTML,$fnd1,3);StringInStr с маской не работает, тут косяк
                  If $fnd1OK <> 0 then
                MouseClick("left", 87, 37, 1, 0) ;
                Sleep(200)
                      EndIf

стало:

Код:
$sHTML=('http://autoit-script.ru/index.php');файл index.php с текстом который и нужно проверить маской на соответствие
$fnd1=("космопорт "&'\d*|\d*'&" Ортредисов");тут УЖЕ маска
    $fnd1OK=StringRegExp($sHTML,$fnd1,3);StringRegExp с маской  работает, тут БЫЛ косяк
                  If $fnd1OK <> 0 then
                MouseClick("left", 87, 37, 1, 0) ;
                Sleep(200)
                      EndIf

:beer:
 
A

Alofa

Гость
DStalker [?]
...Выкладываю корректный код после исправления:
Код:
$fnd1=("космопорт "&'\d*|\d*'&" Ортредисов");тут УЖЕ маска
Под эту маску подойдут и такие строки: "космопорт ", "77 Ортредисов", "космопорт Ортредисов", " Ортредисовкосмопорт ".
 
Автор
DStalker

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
да, вы правы, если будут появляться ненужные мне результаты поиска, то маску уточню
 
A

Alofa

Гость
А $sHTML это файл который нужно скачать сначала, прочитать и проверить?
Или просто проверить строку адреса?


Добавлено:
Сообщение автоматически объединено:

Код:
$fnd1="космопорт \d+\|\d+ Ортредисов";такой шаблон вам нужен
    $fnd1OK=StringRegExp($sHTML,$fnd1,3);StringRegExp с индексом 3 возвращает массив
                  If $fnd1OK <> 0 then ; ... а массив так обычно не проверяют
 
Автор
DStalker

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
$sHTML=('http://autoit-script.ru/index.php');файл index.php с текстом который и нужно проверить маской на соответствие.
проверить текст в файле, что файл соответствует шаблону. После подтверждения соответствия идёт заказ юнитов. в данном примере 7из100 еще 93 можно заказать, т.е. кликнуть 93 раза.
 
Верх