Глава 3. РАБОТА С
ДАННЫМИ НА Web-СТРАНИЦАХ
Типы
данных VBScript
Язык VBScript имеет отличие от Visual Basic и Visual Basic for Application в том, что имеет только один тип данных, который называется Variant. Этот тип данных может содержать как строковые (т.е. символы), так и числовые данные. Тип данных Variant делится на подтипы, которых всего 12. В VBScript существует целый ряд встроенных функций преобразования данных из одного подтипа в другой, которыми можно воспользоваться. Удобством использования функций преобразования является то, что независимо от того, какая функция используется, подтип преобразуемых параметров не имеет значения – важен только подтип, в который нужно преобразовать данную величину. Таким образом, если значение задается в тексте сценария, то интерпретатор VBScript присваивает ему соответствующий подтип [2]. В том случае, если в сценарии необходимо анализировать подтип данных, а затем принимать соответствующее решение, тогда используют функцию VarType, синтаксис которой имеет следующий вид: VarType(имя_переменной). Имя_переменной – это идентификатор переменной, чей подтип необходимо определить. В таблице 2 представлены подтипы данных типа Variant и VBScript, а также перечислены возможные значения, возвращаемые функцией VarType, наименования подтипов данных и пояснения к ним. Рассмотрим ПРИМЕР6, в котором используется функция для преобразования данных отображенных в текстовом окне в символьном виде к подтипу двойной точности, где используется функция преобразования CDbl(). Для пользователя Web-приложения предлагается ввести данные в текстовые окна, а затем вызвать сценарий на VBScript, чтобы провести перемножение данных и возвести результат в квадрат. На рис. 10 показан пример создания Web-страницы, а на рис. 11 – результат проведенных вычислений, который отображается в диалоговом окне.
Таблица 3. Подтипы данных типа Variant в VBScript
Возвращаемое значение функцией VarType |
Подтип данных |
Пояснения |
0 |
Empty |
Автоматически присваивается новым переменным при их объявлении, например, Dim
Perem1 Perem1=2,5 |
1 |
Nul |
Указывает на то, что переменная не содержит допустимых данных (при анализе используется для определения недопустимог значения в переменной) |
2 |
Integer |
Целое число, находится в диапазоне от -32768 до 32768 |
3 |
Long
Integer |
Длинное целое число от -2147483648 до 2147483647 |
4 |
Single |
Число одинарной точности с плавающей точкой |
5 |
Double |
Число двойной точности с плавающей точкой |
6 |
Currence |
Денежная величина, имеет специальный числовой формат для хранения денежных величин |
7 |
Date |
Дата или время – содержит число в специальном формате для отображения даты или времени |
8 |
String |
Строка символов, подтип может содержать неограниченное количество символов (до миллиарда) |
9 |
OLE
Automation Object |
Данные этого подтипа содержат ссылку на объект. Объектом может служить элемент управления ActiveX или встроенный объект HTML |
10 |
Error |
Подтип предназначен для хранения номеров ошибок, такие номера автоматически генерируются VBScript |
11 |
Boolean |
Логическое значение: True или False |
12 |
Array of
Variant |
Массив данных, в котором не определен подтип данных |
13 |
Data
Access Object |
Объект к котором осуществляется доступ из программы |
17 |
Byte |
Может представлять 256 целых чисел в диапазоне от 0 до 255, допустимо только положительное число |
8192 |
Array |
Массив данных для которого необходимо зарезервировать место памяти, например, Dim NovMassiv(4) обозначает, что выделено место для 5 элементов с одним и тем же именем NovMassiv |
Рис. 10. Приложение для выполнения вычислений на Web-странице
Рис. 11. Результат преобразования данных, введенных в виде символов
В рассматриваемом примере, для демонстрации того, что VBScript позволяет оперировать с данными, которые были преобразованы из общего типа Variant в другой подтип данных, который передается другим, не объявленным переменным (принцип наследования объектного подхода), создано две процедуры. Первая процедура Sub kn_OnClick запускается после нажатия на кнопку с наименованием «Посмотреть». Результатами работы этой процедуры являются два процесса. Сначала по оператору Call идет обращение к процедуре Sub summa(a), в которой осуществляется преобразование данных в числа с двойной точностью и их сложение (переменная a), а затем параметр a возвращается в исходную процедуру, в которой продолжаются вычисления, в частности, переменной b присваивается результат – возведение в квадрат суммы двух чисел. Программные коды сценария обработки событий показаны в листинге 7.
Листинг 7.
<HTML>
<HEAD>
<TITLE>Передача параметров</TITLE>
<SCRIPT Language="VBSCript">
Sub summa(a)
t1=CDbl(document.f1.chislo1.value)
t2=CDbl(document.f1.chislo2.value)
a=t1+t2
End sub
Sub kn_OnClick
Call
summa(a) ' Обращение к другой процедуре
b=a*a
Alert ("Сумма= " & a & " В квадрате= " & b)
End Sub
</SCRIPT>
</HEAD>
<FORM Name="f1">
Введите
числа в окна<BR>
<INPUT TYPE="text"
NAME="chislo1"><BR>
<INPUT TYPE="text" NAME="chislo2"><BR>
<INPUT TYPE="button" NAME="kn" VALUE="Посмотреть"><BR>
</FORM>
</HTML>