Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Нашёл недостаток в InputBox(), проверка на IsNumber() всегда возвращает строчную переменную, даже если вводимые данные были представлены в цифре.
Предлагаю два варианта решения:
Код: Выделить весь код
;~ Эта функция работает только с обычными целыми числами
;~ числа типа: 0x5, 4.03 или 00001 не подойдут

Проверка переменной на пренадлежность к числам:
Func _IsNumber($var)
$check=Number($var)
If String($check)=String($var) Then
	Return 1
Else
	Return 0
EndIf
EndFunc
;-------------------------------------
;~ А это первое что мне пришло в голову (банальный перебор)

Проверка переменной на принадлежность к целым числам:
Func _IsInt($var)
If $var= "" Then
	Return -1
EndIf
$len=StringLen($var)
$check=0
For $j=48 To 57
	For $i=1 To $len
		If StringMid($var,$i,1)=Chr($j) Then
			$check=$check+1
		EndIf
	Next
Next
If $check=$len Then 
	Return 1
Else
	Return 0
EndIf
EndFunc

Отправлено: 18:01, 14-02-2007 | #195