Что нового

[Данные, строки] как объявить переменную которая должна иметь диапазон значений

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
подскажите как реализовать такую ситуацию:
есть ряд слов на странице при нахождении одного из них или отсутствии всех выполнялось бы определенное условие, что то наподобие ниже приведенного скрипта
Код:
Global $1		 = '1'
$oIE			 = _IECreate($sUrl)
$IEBodyText      = _IEBodyReadText($oIE)
		If StringInStr($IEBodyText, $1) Then
			Sleep(100)
		EndIf

только переменных для поиска несколько $1 $2 $3 $4 или без громоздкого перечисления переменных и условия не обойтись Global $2 = '2' ElseIf StringInStr($IEBodyText, $2) Then не обойтись
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
general66,
Можно так попробовать.
Код:
$sText_1 = '123 234 235 40.00' & @CRLF & '3456 7896 1110 10.50' & @CRLF & '27.00 30.90' & @CRLF & '1238 67.84 02345'; 1
$sText_2 = '123 234 235 40.00' & @CRLF & '3456 7896 11.10 1000' & @CRLF & '2004 3006' & @CRLF & '1238 6784 02345'; 2
$sText_3 = '123 234 235 40.00' & @CRLF & '3456 7896 1110 10.00' & @CRLF & '20.00 35.00' & @CRLF & '1238 67.84 02345' ; 3
$sText_4 = '123 234 235 40.00' & @CRLF & '3456 7896 1110 10.00' & @CRLF & '20.00 30.00' & @CRLF & '1238 67.84 02345' ; 4
$sText_5 = '123 234 235 40.90' & @CRLF & '3456 7896 1110 16.00' & @CRLF & '20.07 30.02' & @CRLF & '1238 67.84 02345' ; no

$s1 = '10.00'
$s2 = '20.00'
$s3 = '30.00'
$s4 = '40.00'

ConsoleWrite(StringRegExp($sText_1, '\s(\Q' & $s1 & '\E|\Q' & $s2 & '\E|\Q' & $s3 & '\E|\Q' & $s4 & '\E)\s') & @LF)
ConsoleWrite(StringRegExp($sText_2, '\s(\Q' & $s1 & '\E|\Q' & $s2 & '\E|\Q' & $s3 & '\E|\Q' & $s4 & '\E)\s') & @LF)
ConsoleWrite(StringRegExp($sText_3, '\s(\Q' & $s1 & '\E|\Q' & $s2 & '\E|\Q' & $s3 & '\E|\Q' & $s4 & '\E)\s') & @LF)
ConsoleWrite(StringRegExp($sText_4, '\s(\Q' & $s1 & '\E|\Q' & $s2 & '\E|\Q' & $s3 & '\E|\Q' & $s4 & '\E)\s') & @LF)
ConsoleWrite(StringRegExp($sText_5, '\s(\Q' & $s1 & '\E|\Q' & $s2 & '\E|\Q' & $s3 & '\E|\Q' & $s4 & '\E)\s') & @LF)
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Можно и через массив

Код:
Global $aEnum[5] = ['1', '2', '3', '4', '5']

$sText = 'test string 4 ...'

If CompareEnumValues($sText , $aEnum, 1) Then
	MsgBox(0, '', 'Существует')
EndIf

;~ Flag: 0 - точное совпадение.
;~       1 - вхождение подстроки в указанную строку.

Func CompareEnumValues($sVal, $aEnum, $iFlag = 0)
	If ((Not IsArray($aEnum)) Or UBound($aEnum, 2)) Then
		Return SetError(1, 0, 0)
	EndIf
	For $i = 0 To UBound($aEnum) -1
		Switch $iFlag
			Case 0
				If ($sVal == $aEnum[$i]) Then
					Return 1
				EndIf
            Case 1
	            If StringInStr($sVal, $aEnum[$i]) Then
		            Return 1
	            EndIf
	    EndSwitch
    Next
	Return 0
EndFunc
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Верх