Что нового

[Данные, строки] Приравнивание набора чисел к переменной

lazarxxx

Новичок
Сообщения
53
Репутация
2
Доброго всем времени!
У меня такой вопрос. Мне надо набор цифр прировнять к переменной.
примерно такая программа
Код:
AutoIt 
$ad=0
$i=0

$d=500
$d1=500
for $i=1 To 30
PixelSearch ($d,133,$d1,133,0xC8C8B5,30) 
If Not @error Then
$ad=1
Else
$ad=0
EndIf
ConsoleWrite (""& $ad )
$d +=3
$d1 +=3
Next

она выдаёт такой код
110100101111101001010001010000
мне надо его запомнить как число и прировнять к (допустим) $a
Заранее благодарен!
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Попробуйте так:
Код:
$ad=0
$i=0
$a = 0
$d=500
$d1=500
for $i=1 To 30
PixelSearch ($d,133,$d1,133,0xC8C8B5,30)
If Not @error Then
$ad=1
Else
$ad=0
EndIf
ConsoleWrite (""& $ad )
$j = ConsoleRead ()
$a = ""&$a&"" + ""&$j&""
$d +=3
$d1 +=3
Next


MsgBox (0,"", $a)


или вообще без ConsolWrite, но с тем же результатом:
Код:
$ad=0
$i=0
$a = 0
$d=500
$d1=500
for $i=1 To 30
PixelSearch ($d,133,$d1,133,0xC8C8B5,30)
If Not @error Then
$ad=1
Else
$ad=0
EndIf
$a = ""&$a&"" + $ad
$d +=3
$d1 +=3
Next
MsgBox (0,"", $a)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lazarxxx,
Код:
$sResult = ''
For $i = 1 To 30
	$sResult &= Random(0, 1, 1)
Next
MsgBox(64, 'Info', $sResult)
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
madmasles
Так ему же не случайная последовательность чисел нужна была?!!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
mr.Gbabak [?]
Так ему же не случайная последовательность чисел нужна была?!!
Это метод (способ и т.д.) получения строки переменной.
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
madmasles
Так я и говорю, что по его скрипту, в строку переменной должно было записываться не случайные 0 и 1, а в соответствии с какой-то областью на экране...Не зря же он PixelSearh использовал!
 
Автор
L

lazarxxx

Новичок
Сообщения
53
Репутация
2
Поторопился я!
мне нужно чтобы эти данные в число превратились и я мог их сравнить! у меня нечего не получается, пробовал так!
Код:
$sResult = ''
$ad=0
$i=0
$d=500
$d1=500
for $i=1 To 30
PixelSearch ($d,133,$d1,133,0xC8C8B5,30) 
If Not @error Then
$ad=1
Else
$ad=0
EndIf
 $sResult &= $ad
$d +=3
$d1 +=3
Next
$sR=$sResult

ConsoleWrite (""&  $sR &@CR)
If $sR = 001000001100111110100000010001 Then GUICtrlSetData($Edit1, "1 фаза" & @CRLF, 1) 
If $sR = 000010000010001110001000000000 Then GUICtrlSetData($Edit1, "2 фаза" & @CRLF, 1)
If $sR = 010000011110100101110011110100 Then GUICtrlSetData($Edit1, "3 фаза" & @CRLF, 1)
If $sR = 000000000000000000000000000000 Then GUICtrlSetData($Edit1, "ненашол" & @CRLF, 1)

Постоянно выходит ненашол! хотя точно находит!
да и неважно случайное это число или данные с экрана, важно чтоб я мог их прировнять их к чему либо!
но вообще данные берутся с экрана.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А вот так?
Код:
If $sR = "001000001100111110100000010001" Then GUICtrlSetData($Edit1, "1 фаза" & @CRLF, 1) 
If $sR = "000010000010001110001000000000" Then GUICtrlSetData($Edit1, "2 фаза" & @CRLF, 1)
If $sR = "010000011110100101110011110100" Then GUICtrlSetData($Edit1, "3 фаза" & @CRLF, 1)
If $sR = "000000000000000000000000000000" Then GUICtrlSetData($Edit1, "ненашол" & @CRLF, 1)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
lazarxxx сказал(а):
мне нужно чтобы эти данные в число превратились...

Не нужно, тем более, это невозможно.

Код:
If $sR = "001000001100111110100000010001" Then GUICtrlSetData($Edit1, "1 фаза" & @CRLF, 1)
If $sR = "000010000010001110001000000000" Then GUICtrlSetData($Edit1, "2 фаза" & @CRLF, 1)
If $sR = "010000011110100101110011110100" Then GUICtrlSetData($Edit1, "3 фаза" & @CRLF, 1)
If $sR = "000000000000000000000000000000" Then GUICtrlSetData($Edit1, "ненашол" & @CRLF, 1)



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

Опоздал...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lazarxxx,
Как вариант.
Код:
Dim $aR[5] = ['001000001100111110100000010001', '000010000010001110001000000000', _
		'010000011110100101110011110100', '000000000000000000000000000000', '1111111111111111111111111111111']

For $i = 1 To 10
	$iRand = Random(0, 5, 1)
	If $iRand < 5 Then
		$sR = $aR[$iRand]
	Else
		$sR = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
	EndIf
	Switch $sR
		Case $aR[0]
			ConsoleWrite('1 фаза' & @LF)
			MsgBox(64, $sR, '1 фаза')
		Case $aR[1]
			ConsoleWrite('2 фаза' & @LF)
			MsgBox(64, $sR, '2 фаза')
		Case $aR[2]
			ConsoleWrite('3 фаза' & @LF)
			MsgBox(64, $sR, '3 фаза')
		Case $aR[3]
			ConsoleWrite('4 фаза' & @LF)
			MsgBox(64, $sR, '4 фаза')
		Case $aR[4]
			ConsoleWrite('5 фаза' & @LF)
			MsgBox(64, $sR, '5 фаза')
		;Case Else
		Case 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
			ConsoleWrite('Х***я какая-то' & @LF)
			MsgBox(64, $sR, 'Х***я какая-то (:')
	EndSwitch
Next
 
Автор
L

lazarxxx

Новичок
Сообщения
53
Репутация
2
мне бы проще было бы его в число привратить! например 000001001001100100010010000000 - это считало
из него просто получить бы 1001001100100010010000000
как это сделать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Верх