Урок 2 по VBScript: Переменные

Урок 2 по VBScript: Переменные Программирование на VBSCRIPT

В этой статье мы изучим переменные vbscript языка, рассмотрим способы их объявления – явный (с помощью оператора dim) и неявный, ограничения, которые накладываются на переменные в сценариях, как определяется их сфера влияния (глобальные и локальные vbscript переменные), ну, и естественно, напишем несколько простых примеров для лучшего понимания.

И так, давайте начнём. Сначала, рассмотрим основные ограничения, которые распространяются на переменные в vbscript сценариях:

  • Имя должно начинаться с латинской буквы;
  • В имени нельзя использовать пробелы;
  • Ограничение на длину составляет не больше 255 знаков;
  • Нельзя использовать в качестве имени ключевые слова;
Ограничения в имени переменной VBScript

Хорошо, теперь давайте рассмотрим процесс явного и неявного объявления переменных, напишем простенький vbs скрипт:

'***********************************
' variable.vbs
' переменные vbscript
'***********************************
 
dim var_a,var_123
var_123=222
var_a="строка"
var_date = #12/05/2013#
 
MsgBox("1 var_a: " & var_a)
MsgBox("2 var_123: " & var_123)
MsgBox("3 var_date: " & var_date)
 
dim a
a=33333
 
MsgBox("4 a: " & a)
b=9.5
MsgBox("5 b: " & b)

Сначала с помощью ключевого слова dim мы объявляем две переменные: var_a и var_123, далее им присваиваем значения, первой – число, а второй – строку, var_date – присвоено значение типа Дата, признаком является символ решётки, данная vbscript переменная объявлена не явно, так как не используется ключевое слово Dim. С помощью встроенной функции MsgBox можно произвести вывод значения, которое хранится в наших переменных. Далее мы снова производим явное объявление с помощью ключевого слова dim переменной a, выводим ее значение и производим неявное объявление для b, выводим значение.

С точки зрения программирования, данный сценарий содержит следующие недочёты:

  • Переменные, объявленные не явно, могут сильно запутать понимание кода;
  • Лучше всего производить объявление вначале сценария;

Теперь давайте рассмотрим этот же сценарий, но написанный по-другому:

'***********************************
' variable_1.vbs
' переменные vbscript
'***********************************
Option Explicit
 
dim var_123, var_a, var_date, a, b
 
'Присваиваем значения
var_123=222
var_a="строка"
var_date = #12/05/2013#
a=33333
b=9.5
 
'выводим значения
MsgBox("1 var_a: " & var_a):MsgBox("2 var_123: " & var_123)
MsgBox("3 var_date: " & var_date):MsgBox("4 a: " & a):MsgBox("5 b: " & b)

Тут мы использовали конструкцию Option Explicit языка VBScript, которая запрещает использовать в сценарии переменные, объявленные неявным способом (без ключевого слова dim). Также, мы видим, что язык VBScript позволяет выводить в одну строку несколько операторов, разделителем служит двоеточие.

dim - отвечает за явное объявление переменной языка VBScript

Хорошо, теперь давайте рассмотрим сферу влияния (область видимости), для этого напишем простой скрипт:

'***********************************
' variable_2.vbs
'переменные vbscript и их сфера влияния
'***********************************
Option Explicit
 
dim var_1, var_2
 
var_1 = "первая глобальна переменная vbscript"
var_2 = "вторая глобальна переменная vbscript"
 
Function my_function_1()
dim var_1
    var_1 = "первая локальная переменная в vbs "
    my_function_1 = var_1
End Function
 
Function my_function_2()
dim var_1
    var_1=var_2
    my_function_2 = var_1
End Function
 
'происходит переопределение
Function my_function_3()
    var_1 = "вторая  локальная переменная в vbs"
    my_function_3 = var_1
End Function
 
'происходит переопределение
Function my_function_4()
    var_1=var_1
    my_function_4 = var_1
End Function
 
' Производим вывод данных
MsgBox(var_1)                                     
MsgBox(my_function_1)
MsgBox(my_function_2)
MsgBox(my_function_3)
MsgBox(my_function_4)
MsgBox(var_1)

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

Вначале с помощью ключевого слова dim мы объявили var_1 и var_2 – они являются глобальными, то есть, доступны из любого места в сценарии. Далее прописали четыре пользовательские функции, функция будет возвращать то значение, которое присвоено ее имени (my_function_1 = var_1, my_function_2 = var_1,…),:

  • my_function_1 – будет возвращать значение уже локальной переменной vbscript – var_1.
  • my_function_2 – тут мы локальной переменной var_1 присвоили значение глобальной var_2.
  • my_function_3 – тут мы неявно допускаем ошибку программирования, так как ключевое слово dim не используется, то мы переопределяем значение глобальной var_1.
  • my_function_4 – тут вопреки логике, значение var_1 будет ровно не «первая глобальна переменная vbscript», а «вторая локальная переменная vbscript», так как мы изменили глобальное значение из тела функции my_function_3.

Помимо строковых и числовых данных, переменной можно присвоить дату – для этого используется символ решетки (#) вместо кавычек, и формат вида месяц/день/год. Помимо этого можно использовать 16-ричные значения, перед значением ставится &H, а если 8-ричное значение, то — &O.

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