powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Типы данных в VBScript
3 сообщений из 3, страница 1 из 1
Типы данных в VBScript
    #32012092
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите за ламерский вопрос.
Допустим у меня есть переменная s, к которой применялась функция trim.
Она иммеет строковой тип, но внутри нее только цифры.
Я хочу ее сравнить с числом, но сравнение происходит неверно. Как можно преобразовать s к целому типу?
Спасибо
...
Рейтинг: 0 / 0
Типы данных в VBScript
    #32012471
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VBScript - язык без типизации переменных (т.е. все они по-умолчанию являются типом Variant).

У этого типа есть "под-типы", которые можно проверить функцией VarType(<имя-переменной&gt.

Кроме всего прочего - VBScript активно использует "неявное" приведение типов (т.е. - он сам себе "умно" решает - как складывать строчку и число при сложении, и что в результате получится, но при сравнении - похоже он про это "забывает").

Если у вас установлен Windows Script Host (он по-умолчанию устанавливается в W2K) - то скопируйте нижележащий текст в текстовый файлик с любым именем и расширением .WSF, а потом в командном окошке запустите программку CSCRIPT.EXE с параметром <имя-файла>.WSF

Если Windows Script Host не установлен сразу - возьмите его тут:
http://www.microsoft.com/msdownload/vbscript/scripting.asp

(Рекомендую... о-о-о-очень удобное средство для тестирования любых кусков кода на VBScript, и/или - написания простых "утилит" для "личного пользования")


<package>
<job id="StrConv">
<?job debug="true"?>
<script language="VBScript">
WScript.Echo "String convertion"
dim s, i
s = "123"
i = 123
WScript.Echo "s = ""123"""
WScript.Echo "i = 123"
WScript.Echo "VarType(s) = " & VarType(s)
WScript.Echo "VarType(i) = " & VarType(i)
WScript.Echo "Implicit string (s & i) = " & (s & i)
WScript.Echo "Implicit integer (s + i) = " & (s + i)
WScript.Echo "Explicit convertion (Cstr(Cint(s) + i)) = " & (Cstr(Cint(s) + i))
WScript.Echo "Direct comparition (iif(s = i,""True"",""False"")) = " & (iif(s = i,True,False))
WScript.Echo "Convert comparition (iif(Cint(s) = i,""True"",""False"")) = " & (iif(Cint(s) = i,True,False))

function iif(a,b,c)

if a then
iif = b
else
iif = c
end if

end function

</script>
</job>
</package>
...
Рейтинг: 0 / 0
Типы данных в VBScript
    #32013837
Виталий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отвечу на сам вопрос - используй функцию Int()
Например
Dim a
Dim b
a=5
s=RTrim("5 ")
If Int(a)=Int(b) Then
Response.Write("равенство")
End If

Хорошая шпаргалка по функциям VBScript есть здесь
http://prosto.pp.ru/Docum/DocumShow.asp?DocumID=81
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Типы данных в VBScript
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]