Что нового

Не корректное чтение из ini файла

Asshaker

Знающий
Сообщения
150
Репутация
17
На домашнем компе Win7 x64 работает нормально.
На рабочем Win7 x86 не нормально :(
Код:
#include <IE.au3>
Global $oIE = _IEAttach("Битва за") ;подключаемся к окну ИЕ
Global $wProc=IniRead(@ScriptDir&'\Botva_bot_v01.ini','Bot_settings','mineProc',40) ;в файле значение 42
$oProcs=_IETagNameGetCollection($oIE,'P')
	For $oProc in $oProcs
		If $oProc.classname=='red_line_mine' Then
			$proc=StringRegExp($oProc.innertext,'Вероятность успеха - (.*?) %',1)
			If $proc<>0 Then
				if $proc[0]>$wProc Then
					MsgBox(0,0,$proc[0]&'>'&$wProc)
				Else
					MsgBox(0,0,$proc[0]&'<'&$wProc)
				EndIf
			EndIf
			ExitLoop
		EndIf
	Next

Если объявить $wProc=42, все правильно показывает.

а вот результат:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Что я сделал не правильно?

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Что я сделал не правильно?" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Asshaker
нужно заменить :
Код:
if $proc[0]>$wProc Then

на :
Код:
if Number($proc[0])>Number($wProc) Then
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Спасибо, помогло :smile:
Еще корректно работает, если прибавить +1 к значению считанному из ini файла:
Код:
$proc=StringRegExp($oProc.innertext,'Вероятность успеха - (.*?) %',1)
			If $proc<>0 Then
				if $proc[0]>$wProc+1 Then
					MsgBox(0,0,$wProc&'<'&$proc[0])
				Else
					MsgBox(0,0,$wProc&'>'&$proc[0])
				EndIf
			EndIf
			ExitLoop
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Asshaker
Из справки
> Истинно, если первое значение больше второго. Строки сравниваются в лексикографическом порядке, даже если их содержимым являются числа.
При считывании ini все значения являются строками. При сложении строки с числом, строка конвертируется в число, и далее при сравнении с числом опять же второй строковый конвертируется в число. Отсюда корректность.
 
Верх