Переменная -- это помеченная
область в компьютерной памяти,
которую вы можете использовать для
сохранения данных во время
выполнения сценария. Вы можете
исползовать переменные для :
сохранения введенной
пользователем информации;
сохранения данных,
возвращенных функциями;
сохранени ярезультатов
вычислений;
Объявление переменных
Есть два метода задания
переменных в VBScript, явный и неявный.
Обычно переменные задаются явно, с
помощью оператора Dim:
Dim Name
Эта конструкция задает
переменную Name.
Вы также можете задать несколько
переменных в одной строке, как это
показано ниже, но лучше каждую
переменную объявить отдельно.
Dim Name, Address, City, State
Переменные могут быть заданы
неявно, просто появлением имени
переменной внутри сценария. Это не
рекомендуется, так как приводит к
возможным ошибкам и делае сценарий
более сложным для отладки.
Вы можете сделать так, чтобы
интерпритатор требовал явного
задания переменных с помощью
конструкции Option Explicit
в начале сценария. Любая переменная,
не заданная явно,будет
интерпритирована как ошибочная.
Правила для названия переменных
При выборе названия для переменно
используйте следующие правила:
оно должно начинаться с буквы;
оно не должно содержать
пробелов;
оно должно быть уникальным
внутри своей сферы влияния. О
сферах влияния будеи сказано
позже в этом уроке;
оно не должно содержать больше
255 символов;
Варианты и подтипы
В VBScript есть лишь один тип данных,
названный вариантом. Варианты
могут хранить данные различного
типа. Типы данных, которые могут
сохранятся в варианте, называются подтипами.
В таблице ниже описаны подтипы,
поддерживаемые VBScript.
Подтип
Описание
Boolean
True или False
Byte
Целое число от 0 до 255
Currency
Денежные значения
Date
Дата и время
Double
Вещественное число двойной
точности
Empty
Значение, хранимое вариантом
до передачи ему данных
Error
Номер ошибки
Integer
Длинное целое от -32768 до 32767
Long
Крайне длинное целое от -2147483648
до 2147483647
Null
Неинтерпритируемые данные
Object
Объекты
Single
Вещественное обычной
точности
String
Строковая переменная
Присваивание значений
Присвоить значение переменной вы
можете с помощью следующей
конструкции:
Сфера влияния переменных
определяет, где переменная может
быть испоьзована в сценарии.
Сфера влияния переменной
определяется местом ее объявления.
Если переменная объявлена внутри
процедуры, она называется
внутренней переменной процедуры и
может быть использована только
внутри процедуры. Если переменная
объявлена вне процедур, она
становится глобальной и может быть
вызвана и использована в любом
месте сценария.
Следующий пример показывает
объявление переменных обоих видов:
<SCRIPT>
Dim counter
Sub cmdButton_onClick()
Dim Temp
End Sub
</SCRIPT>
Переменная counter -- глобальная
переменная. Она может
использоваться в течение всей
работы сценария. Переменная temp существует
лишь внутри процедуры cmdButton_onClick.
Константы
VBScript поддерживает массивы.
Объявляется массив с помощью
операнда Dim, так
же, как и переменные.
Dim States(50)
Эта конструкция создает массив,
содержащий 51 элемент. Почему 51,
спросите вы. Ответ состоит в том,
что все массивы в VBScript начинаются с
нулевого элемента, а число в
скобках определяет номер
последнего элемента массива.
Значения элементам массива
присваиваются также, как любым
другим переменным, но за именим
массивав скобках должен стоять
номер элемента:
States(5) = "California"
States(6) = "New York"
Массив может быть многомерным -- VBScript
подднрживает до 60 измерений. Ниже
показано задание двухмерного
массива для хранения названий 51
штата и, например их столиц:
Dim States(50,1)
Теперь для присваивания значений
внутри массива вы должны
воспользоваться номерами по обоим
измерениям:
States (6, 0) = "New York"
States (6, 1) = "Michigan"
VBScript также поддерживает
динамические массивы - массивы,
размер которых может изменяться по
ходу сценария. Такие массивы
задаются без указания размера в
скобках:
Dim Customers( )
Для изменения размера массива
используется конструкция ReDim
ReDim Customers (100)
Размер массива может изменяться
неограниченное количество раз. Для
сохранения информации, которая в
нем уже есть, используется ключевое
слово Preserve.
ReDim Preserve Customers (100)
Второе упражнение по языку VBScript
В этом упражнении мы создадаим
страницу, на которой производится
простое вычисление на основе цен на
продукцию, ее колличества и
комиссионных. При этом вы узнаете
больше об использовании переменных
в VBScript. В этом упражнении вы
создадите документ HTML, содержащий
сценарий, который получит
информацию от пользователя,
осуществит на ее основе вычисления
и выдаст на страницу результат.
Полная версия этой части
упражнения находится в файле p0002а.htm.
Создание документа
Откройте текстовый редактор и
вставьте следующий код HTML:
<HTML>
<HEAD>
<TITLE>Работа в VBScript:
Упражнение 2</TITLE>
</HEAD>
<BODY>
<H1>Ваше второе упражнение по
VBScript</H1>
<P>Переменные могут
использоваться, чтобы сохранять и
управлять значениями.
Просмотреть демонстрацию
этого можно введя количество и цену
единицы товара
в поля ниже и нажав кнопку
"Вычислть стоимость". </P>
<FORM NAME="frmExercise2">
<TABLE>
<TR>
<TD><B>Колличество:</B></TD>
<TD><INPUT TYPE="Text"
NAME="txtQuantity" SIZE=5></TD>
</TR>
<TR>
<TD><B>Цена
устройства:</B></TD>
<TD><INPUT TYPE="Text"
NAME="txtUnitPrice" SIZE=5></TD>
</TR>
</TABLE>
<BR>
<INPUT TYPE="Button" NAME="cmdCalculate"
VALUE="Вычислить стоимость">
</FORM>
</BODY>
</HTML>
Сохраните файл и загрузите его
в Internet Explorer. Результат будет таким.
В этой части добавим сценарий, для
того чтобы "нажатие" кнопки Вычислить
стоимость приводило к ее
вычислениям. Полная версия новой
части упражнения находится в файле p0002b.htm.
Добавление VBScript
Вновь откройте созданный
документ. Измените его, добавив
выделенные строки.
Заметим что апострофы ( ' )
обозначают комментарий, а знак ( _ )
на конце строки обозначает, что
следующая строка будет продолжена
текущей.
<HTML> <HEAD> <TITLE>Работа с VBScript:
Упражнение 2</TITLE> <SCRIPT LANGUAGE="VBScript"> <!--Эта инструкция
добавляется для броузеров, не
понимающих модули VBScript. Option Explicit Sub cmdCalculate_OnClick() Dim AmountofTax Dim CRLF Dim Message Dim Subtotal Dim TABSPACE Dim TAX_RATE Dim TotalCost
'Отражение
результатов. Message = "Общее
количество для вашего ввода:" Message = Message & CRLF & CRLF Message = Message & "Промежуточная
сумма:" & TABSPACE & "$" &
Subtotal & CRLF Message = Message & "Налог:"
& TABSPACE & "$" & AmountofTax & CRLF Message = Message & "Итого:"
& TABSPACE & "$" & TotalCost MsgBox Message,,"Итог" End Sub --> </SCRIPT> </HEAD> <BODY> <H1>Ваше второе
упражнение по VBScript</H1> <P>Переменные могут
использоваться, чтобы сохранять и
управлять значениями. Просмотреть
демонстрацию этого можно введя
количество и цену единицы товара в поля ниже и нажав
кнопку "Вычислть стоимость".
</P> <FORM NAME="frmExercise2"> <TABLE> <TR> <TD><B>Колличество:</B></TD> <TD><INPUT
TYPE="Text" NAME="txtQuantity" SIZE=5></TD> </TR> <TR> <TD><B>Цена
устройства:</B></TD> <TD><INPUT
TYPE="Text" NAME="txtUnitPrice" SIZE=5></TD> </TR> </TABLE> <BR> <INPUT TYPE="Button" NAME="cmdCalculate"
VALUE="Вычислить стоимость"> </FORM> </BODY> </HTML>
Сохраните файл и загрузите его
в Internet Explorer. Введите 100 в поле Колличество
и 10 -- в поле Цена
устройства. Щелкните на
кнопке Вычислить стоимость.
Результат будет таким.
Как это работает
Сразу видно, что этот сценарий
намного более запутан, чем в
Упражнении 1. Не бойтесь его размера.
Как и в предыдущем уроке, мы пройдем
его шаг за шагом.
После открывающего тега <SCRIPT> и комментария
HTML выувидете такую строку: Option Explicit
Помните, что это значит? Эта
конструкция обязывает вас
объявлятьзаранее все переменные.
Дальше мо создаем процедуру для
обработки события OnClick
на кнопке cmdCalculate. Sub cmdCalculate_OnClick
Затем мы объявляем семь переменных,
три из которых мы используе как
константы. Последние можно
отличить: они записаны заглавными
буквами. В VBScript регистр не имеет
значения (в отличии от JavaScript и XML). Мы
используем смену регистра для
упрощения чтения. Какие это
переменные, внутренние или
глобальные? Внутренние, так как они
объявлены внутри процедуры.
В VBScript все, что следует за
апострофом до конца строки,
является комментарием и
игнорируется при интерпритации
сценария. Комментарии могут
занимать всю строку или ее часть.
Последние обычно используются для
объяснения, что происходит только
на данной строке. ' Присваивание
значений константам
В следующих строках константам
передаются значения. Chr
( ) -- это встроенная
функция VBScript, возвращающая символ,
имеющий заданный код ASCII. Коды13, 10 и 9
обозначают, соответственно,
возврат коретки, переход на новую
строку и табуляцию. CRLF = Chr(13) & Chr(10)
TABSPACE = Chr(9)
Следующая строка показывает , как
данные передаются из формы в
сценарий и как затем
обрабатываются. Два поля нашей
формы названы txtQuantity и txtUnitPrice
. Форму мы назвали frmExercise2 .
Здесь мы обращаемся к нашему
документу, затем к форме, далее к
текстовому полю и, наконец, к его
значению value . Value содержит
то, что пользователь вводит в
данное поле на странице. Знак *
обозначает, что необходимо
перемножить значение одного поля
на значение другого.
ПРИМЕЧАНИЕ. Обычно
используемые операнды VBScript: + для сложения, - для вычитания, * для
перемножения и / для деления.
Результат этого вычисления
будет сохранен в переменной Subtotal. Дальше мы
выполняем некоторые
дополнительные вычисления. И,
наконец, результат этих вычислений
показывается в диалоговом окне,
созданным с помощью функции MsgBox. Знак &используется
для связывания двух строковых
переменных.
Как и на предыдущем уроке, не
зацикливайтесь на деталях. Со
временем вы все поймете.
Резюме
Вот и закончилось упражнение 2. Вы
создали WEB-страницу, которая
взаимодействует с пользователем,
получая от него данные, выполняя
вычисления и возвращая ему
результат, то есть делает то, что и
большинство приложений. Вы узнали:
типы переменных,
поддерживаемых VBScript;
как задавать и использовать
переменные в сценарии;
как компенсировать отсутствие
констант в VBScript;
как вставлять комментарий в
VBScript;
На следующем уроке мы рассмотрим
объекты. Вы узнаете, что это такое и
как они используются в VBScript.