
- •Переменные, массивы и константы
- •Примечание
- •Примечание
- •Операторы условия и цикла
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Процедуры
- •VbScript предусматривает создание двух типов процедур:
- •Объектная модель и взаимодействие с элементами документа
- •Функции и объекты ядра vbScript
- •InputBox(подсказка, заголовок, умалч_знач, х, у)
- •Примечание
- •Примечание
- •Примечание
- •Примечание
Объектная модель и взаимодействие с элементами документа
Как уже говорилось (в разделе "Объектные модели языков сценариев" этой главы), при интерпретации HTML-страницы браузер создает объекты, соответствующие элементам отображаемой страницы. Эти объекты доступны для приложения VBScript и любой сценарий может обратиться или установить значения свойств объектов, выполнить их методы.
Язык VBScript, как и другой распространенный язык сценариев, может манипулировать стандартными объектами, встроенными в ядро VBScript, и объектами, предоставляемыми браузером. При описании объектов JavaScript мы рассматривали объекты браузера Netscape Navigator фирмы Netscape. Теперь остановимся на объектах браузера Microsoft Internet Explorer фирмы Microsoft.
Функции и объекты ядра vbScript
Ядро VBScript предоставляет программисту большой набор встроенных функций для работы с датами, строковыми подтипами данных, вычисления математических функций и отображения информационных диалоговых окон и окон ввода информации пользователем.
Для вычисления стандартных математических функций используются процедуры-функции, представленные в табл. 9.11. В качестве параметров этих процедур могут выступать числовые литералы, переменные, содержащие числовые значения, или числовые выражения.
Таблица 9.11. Математические функции VBScript
Функция |
Действие |
Abs |
Вычисляет абсолютное значение |
Atn |
Вычисляет значение арктангенса своего параметра |
Cos |
Вычисляет значение косинуса угла, заданного в радианах |
Exp |
Экспоненциальная функция: еx |
Int |
Целая часть числа |
Log |
Вычисляет натуральный логарифм своего параметра |
Sin |
Вычисляет значение синуса угла, заданного в радианах |
Sqr |
Вычисляет значение квадратного корня своего параметра |
Tan |
Вычисляет значение тангенса угла, заданного в радианах |
Получить текущее время, текущую дату, а также одновременно и дату, и время, установленные на компьютере пользователя, можно с помощью функций Time, Date и Now. Эти три процедуры-функции не требуют параметров, поэтому при их использовании в выражениях следует задавать открывающую и закрывающую скобки, указывающие на отсутствие параметров, как показано в следующем фрагменте кода:
iTime = Time() |
' переменная iTime содержит текущее время |
iDate = Date() |
' переменная iDate содержит текущую дату |
iDateTime = Now() |
' переменная iDateTime содержит текущую дату и время |
Что хранится в этих переменных, зависит от системных установок времени и даты, определенных на компьютере пользователя. Например, на компьютере с установленным форматом времени Ч:мм:сс и даты дд.ММ.гг печать в документе значений переменных предыдущего фрагмента кода будет выглядеть следующим образом:
14:49:31 |
' Значение переменной iTime |
23.06.99 |
' Значение переменной iDate |
23.06.99 14:49:31 |
' Значение переменной iDateTime |
Если какая-либо переменная содержит значение подтипа Date, или ее содержимое может быть преобразовано в этот подтип, то функции Day (переменная), Month (переменная) И Year (переменная) возвращают соответственно число, месяц и год даты, не зависимо от формата хранения дат на компьютере пользователя. Функции Hour (переменная), Minute (переменная) и second (переменная) возвращают целые числа, соответствующие часам, минутам и секундам времени, хранящимся в переменной, являющейся параметром этих функций.
Для работы со строками предназначен целый ряд функций, которые полезны при проверке правильности ввода информации в поля формы.
Функция Len(строка) возвращает число символов в строке с учетом лидирующих и замыкающих пробелов. Если пользователь ввел в поле формы строку " строка " с двумя пробелами в начале и одним пробелом в конце, то эта функция возвратит значение 9. Для удаления незначащих пробелов в Yачале или конце строки можно обратиться к функциям Ltrim, Rtrim и Trim, которые, соответственно, удаляют лидирующие, замыкающие или оба типа пробелов из строки, переданной этим функциям в качестве параметров.
Функции Lcase и Ucase переводят все содержимое строки соответственно в нижний или верхний регистр.
Для сравнения Двух строк используется функция StrComp( строка 1, строка2, метод_сравнения). Она возвращает значение 0 (если строки совпадают в соответствии с методом сравнения, заданным третьим параметром функции), значение -1 (если строка1 меньше строки2) и значение 1 в любом не совпадающем с двумя предыдущими случае. Параметр метод_сравнения может принимать два значения: 0 — строки сравниваются с учетом регистра,1 — строки сравниваются без учета регистра.
Функция InStr(нач_позиция, строка1, строка2, метод_сравнения) позволяет определить, содержится ли строка2 в строке1. Параметр нач_позиция задает позицию в строке1, с которой начинается поиск подстроки, заданной параметром строка2. Это достаточно полезно, если известно, что строка1 содержит несколько вхождений строки2. Параметр метод_сравнения определяет, учитывается ли регистр при поиске соответствующей подстроки, и совпадает с аналогичным параметром функции strComp. Функция поиска подстроки intstr возвращает номер позиции в строке1 первого вхождения строки2, если такое найдено, и значение 0 — в противном случае.
Две стандартные функции InputBox и MsgBox позволяют отобразить диалоговое окно с полем ввода и диалоговое окно с сообщением пользователю.
Функция InputBox отображает диалоговое окно с полем ввода и двумя кнопками: ОК и Cancel (Отмена). Она имеет следующий синтаксис: