Урок 4 по VBScript: преобразование типов данных

Урок 4 по VBScript: преобразование типов данных Программирование на VBSCRIPT

В данной статье я хотел бы рассмотреть, как происходит преобразование типов vbs, и какие функции используются для проверки и преобразования типов данных vbs. Как уже упоминалось, в прошлой статье, при попытке сложить число 100 и строку «100» мы получим результат 200, так как язык VBScript автоматически приводит строку в число. Если сценарий маленький, то такие «тайные» преобразования типов vbs даже полезны, но, если код разрастётся до огромных размеров, то это может сильно помешать. Поэтому, начнём с того, что рассмотрим функции, которые используются для явного приведения типов данных в сценария VBScript.

За приведения одного типа к другому отвечают следующие функции:

CBool(x) – позволяет привести значение переменной x к логическому Bool. В случае, если x равно 0, то функция вернёт False (ложь), иначе True (истина).

'************************'CBool.vbs'пример работы с функцией CBool'************************Dim A, B B="строка" A = CBool(100)    'ИстинаMSgBox(A)A = CBool(0)      'Ложь MSgBox(A)A = CBool("True") 'Истина MSgBox(A)A = CBool("FALSE") 'ЛожьMSgBox(A)A = CBool(B) 'Вернёт ошибку!!!

CByte(x) — позволяет привести значение x к целому Byte. Если x — строка, то  за преобразование отвечают региональные настройки операционной системы. Значение x не должно превышать диапазон 0…255, иначе произойдёт ошибка. Дробные числа будут округляться:

'************************'CByte.vbs'преобразование типов vbs'************************Dim A, B B=12345 A = CByte(100)        '100MSgBox(A)A = CByte(53.7899)    '54 MSgBox(A)A = CByte("100")      '100 MSgBox(A)A = CByte(B)          'Вернёт ошибку!!!MSgBox(A)

CInt(x) — приводит значение переменной x к целому Int. Диапазон не должен превышать -32 768…32 767. Правила соответствуют предыдущей функции.

'************************'CInt.vbs'Пример работы с функцией CInt'************************Dim A, B B=123453333 A = CInt(100)                       '100MSgBox(A)A = CInt(30200.7899)'30201MSgBox(A)A = CInt("-15134")                  '-15134MSgBox(A)A = CInt(B)                         'Вернёт ошибку!!!MSgBox(A)
Функции vbs - работа со строками, дата, примеры скриптов

CCur(x) – позволяет привести значение x к Currency, диапазон -922 337 203 685 477.5808…922 337 203 685 477.5807:

'************************'CCur.vbs'преобразование типов vbs'************************Dim A, B B=123453333 A = CCur(1234.2345678)        '1234.2346MSgBox(A)A = CCur("-35689")            '-35689MSgBox(A)A = CCur(B)                   '123453333MSgBox(A)

CLng(x) – функция дает возможность привести значение переменной x к Long:

'************************'CLng.vbs'преобразование типов vbs'************************Dim A, B B=123453333 A = CLng(1234.2345678)       '1234MSgBox(A)A = CLng("-35689")           '-35689MSgBox(A)A = CLng(B)                '123453333MSgBox(A)

CSng(x) – позволяет привести переменную x к Single:

'************************'CSng.vbs'преобразование типов vbs'************************Dim A, B B=12345.3333 A = CSng(1.234E-23)              '1.234E-23MSgBox(A)A = CSng("-1,345")               '-1,345MSgBox(A)A = CSng(B)                      '12345.33MSgBox(A)

CDbl(x) – функция дает возможность преобразовать значение x к Double

'************************'CDbl.vbs'преобразование типов vbs'************************Dim A, B B=12345.3333 A = CDbl(1.234E-23)              '1.234E-23MSgBox(A)A = CDbl("-2221,345")            '-2221,345MSgBox(A)A = CDbl(B)                      '12345.3333MSgBox(A)

CDate(x) – Позволяет получить значение Date. Значение x может являться строкой,  числом или форматом даты (например, #20/12/1988#). Так, если есть дробное число, то целая часть будет соответствовать числу дней, начиная с 30 декабря 1899 года, если целая часть негативная, то мы получим более ранние даты. Дробная часть конвертируется во время суток, начиная с полуночи:

'************************'CDate.vbs'преобразование типов vbs'************************Dim A, B B=#30/12/1986# A = CDate(0)               '0:00:00MSgBox(A)A = CDate(-1)              '29.12.1899MSgBox(A)A = CDate(1)               '31.12.1899MSgBox(A)A = CDate("30.12.1981")           '30.12.1981MSgBox(A)A = CDate("30/12/1983")           '30.12.1983MSgBox(A)A = CDate(1.33)                   '31.12.1899 7:55:12MSgBox(A)A = CDate(B)                      '30.12.1986MSgBox(A)

CStr(x) – приводит к String.

Скачать архив с примерами

Хорошо, теперь стоит сделать одно уточнение, при использовании данных функций, меняется только значение переменной vbscript, а не объём, который она занимает в оперативной памяти. То есть, как бы вы не делали преобразование типов данных, то они и так будут иметь тип Varian – данный тип занимает 16 байт (для платформы х86) или 24 байта (для платформы х64).

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий