Что нового

Перебор всех значений

Xecko

Новичок
Сообщения
6
Репутация
0
Всем привет!
Есть кусок скрипта:

Код:
$sMyString = "Cтоловая"
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        $ERROR = ("Повтор")
endif
next


мне нужно перебрать разные значения:
$sMyString = "Кафе"
$sMyString = "Cтоловая"
$sMyString = "Бар"

Как сделать перебор всех 3 вариантов что бы 3 раза не копировать весь код?
Заранее спасибо
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код можно написать по разному, в зависимости от условий поиска. Вы хотите найти любое из значений или каждое отдельно или все вместе в коллекции?
Самое простое - создать три переменных и каждую проверять. Но можно и массив с циклом организовать. Если любое, то можно через регулярку или OR. Всё зависит от цели.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Самый простой вариант:
Код:
$sMyString = "Кафе|Cтоловая|Бар"
$oLinks = _IELinkGetCollection($oIE)

For $oLink In $oLinks
    $sLinkText = _IEPropertyGet($oLink, "innerText")
    
    If StringRegExp($sLinkText, '(?i)(' & $sMyString & ')') Then
        $ERROR = ("Повтор")
    EndIf
Next
 
Автор
X

Xecko

Новичок
Сообщения
6
Репутация
0
Код можно написать по разному, в зависимости от условий поиска. Вы хотите найти любое из значений или каждое отдельно или все вместе в коллекции?
Самое простое - создать три переменных и каждую проверять. Но можно и массив с циклом организовать. Если любое, то можно через регулярку или OR. Всё зависит от цели.
Задача такова: если хоть одно из значений присутствует - устанавливается $ERROR = "Повтор". Тоесть можно искать до первого совпадения.
Сообщение автоматически объединено:

Самый простой вариант:
Код:
$sMyString = "Кафе|Cтоловая|Бар"
$oLinks = _IELinkGetCollection($oIE)

For $oLink In $oLinks
    $sLinkText = _IEPropertyGet($oLink, "innerText")
   
    If StringRegExp($sLinkText, '(?i)(' & $sMyString & ')') Then
        $ERROR = ("Повтор")
    EndIf
Next

Cпасибо!
Просьба уточнить - он проверит все значения и будет при каждом совпадении переназначать $Erorr?
Или скрипт будет действовать до первого найденного ?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Верх