Разработка INTRANET приложений

         

Переменные и константы


Переменная - это обычный идентификатор, позволяющий обращаться к отдельным участкам памяти, хранящим информацию, которая может изменяться в процессе выполнения сценария. Для объявления переменных в VBScript используется оператор Dim. Несколько переменных можно объявить путем перечисления их через запятую, например:

<SCRIPTLANGUAGE="VBScript"> DimTop, Bottom, Left, Right </SCRIPT>

Также можно косвенно объявить переменную путем простого использования ее имени в любом месте скрипта. Но этим способом не нужно злоупотреблять, поскольку при использовании имени переменной могут возникать орфографические ошибки, что может явиться причиной неожиданных результатов выполнения программы на VBScript. Поэтому рекомендуется использовать оператор OptionExplicit для объявления всех переменных и констант программы. При использовании оператора OptionExplicit он должен быть первым оператором в контейнере <SCRIPT>.

В VBScript существуют ограничения на количество используемых переменных:

  • в каждой процедуре не может использоваться более 127 переменных (массив считается как одна переменная);
  • в каждой программе не может быть более 127 переменных, действующих на уровне модуля.

Таблица 3.4. Подтипы данных Variant



ПодтипОписание
EmptyПеременная пуста. В качестве значения может быть 0 для числовой переменной или строка нулевой длины ("") для текстовой переменной.
NullПеременная не содержит никакого значения.
BooleanЗначение может быть либо True, либо False.
ByteЦелое число в диапазоне от 0 до 255.
IntegerЦелое число в диапазоне от -32,768 до 32,767.
LongЦелое число в диапазоне от -2,147,483,648 до 2,147,483,647
SingleЧисло с плавающей запятой обычной точности в диапазоне от -1.79769313486232E308 до -4.94065645841247E-324 для отрицательных значений и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.
DoubleЧисло с плавающей запятой двойной точности в диапазоне от -1.79769313486232E308 до 4.94065645841247E-324 для отрицательных значений и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.
Date (Time)Определяет число, характеризующее дату от 1 января 1000 г. до 31 декабря 99999.
Stringопределяет строку переменной длины, достигающей до 2 миллиардов символов.
ObjectОпределяет объект.
ErrorОпределяет номер ошибки.
<
Когда переменная объявляется внутри какой- либо процедуры, то использовать эту переменную и изменять ее значения можно только внутри данной процедуры. Такие переменные называются локальные. При необходимости использовать переменную в нескольких процедурах одного скрипта, ее необходимо объявить за пределами процедур. Такие переменные называются действующими на уровне модуля. Таким образом, область действия переменной определяется местом ее объявления в скрипте.

Время существования переменной называется временем жизни. Для переменных, действующих на уровне модуля, время жизни определяется от момента объявления переменной до конца выполнения скрипта. Время жизни локальной переменной начинается, когда в процедуре встречается ее объявление, и заканчивается при завершении процедуры. Локальная переменная является отличным временным хранилищем информации на время выполнения процедуры. В различных процедурах возможно использовать локальные переменные с одинаковыми именами, поскольку они могут использоваться только теми процедурами, в которых объявлены.

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

Существует два типа переменных: скаляр - это переменная, которая может одновременно содержать только одно значение. Другой тип переменных позволяет присваивать множество родственных значений. Такой тип называется массивом. Переменная типа массив объявляется несколько иначе, чем переменная типа скаляр. Различие заключается в том, что после имени переменной в скобках указывается номер последнего элемента массива, например, в следующем примере одномерный массив содержит 11 элементов (первый элемент массива всегда имеет номер 0):

<SCRIPTLANGUAGE="VBScript"> DimA(10) </SCRIPT>

Такой массив является с фиксированным количеством элементов. Для обращения к элементам массива используется номер элемента, указывающийся в скобках после имени массива. Массивы могут быть не только одномерными. Для объявления многомерного массива нужно в скобках через запятую перечислить количество элементов каждой размерности. Например, при объявлении двумерного массива первым указывается количество строк, а затем количество столбцов. Кроме массива с фиксированным количеством элементов, можно объявить массив, размер которого может изменяться во время выполнения сценария. Такой массив объявляется как обычный массив, используя оператор Dim, или оператор ReDim (используется для объявления массивов с переменным количеством элементов). Отличие заключается в том, что в скобках после имени массива не указывается число элементов массива, например:



<SCRIPTLANGUAGE="VBScript"> DimMyArray() ReDimAnotherArray() </SCRIPT>

Для использования такого массива позже необходимо использовать оператор ReDim для определения числа размерностей и размер каждой из них. В следующем примере оператор ReDim устанавливает размер массива 25. Далее оператор ReDim устанавливает размер этого же массива 30. Специальный ключ Preserve используется для сохранения значений элементов массива, которые были определены ранее. Если этот ключ не использовать, то при изменении размерности массива значения всех элементов стираются.

<SCRIPTLANGUAGE="VBScript"> ReDimMyArray(25) . . . ReDimPreserveMyArray(30) </SCRIPT>

Изменять размерность массива можно сколько угодно раз, но нужно помнить, что при уменьшении размерности массива все данные теряются.

Константа - это значащий идентификатор, который содержит число или строку. Значение константы во время выполнения скрипта изменяться не может. На данный момент в VBScript нет встроенных констант, определенных языком. Константа объявляется так же как и переменная с помощью оператора Dim. После объявления константы ей нужно присвоить значение, которое потом будет соответствовать имени константы.

Отметим, что текстовые значения обрамляются кавычками, а значения типа Дата/Время - знаком "решетка" (#). К сожалению, нет никакого различия при объявлении переменных и констант. Поэтому может возникнуть желание как-то различать их, для того чтобы не попытаться использовать константу как переменную. В этом случае можно предложить при определении имени константы давать ей какую-нибудь приставку, например vb, или можно называть константы строчными буквами, как это рекомендуется в соглашениях по именованию.


Содержание раздела