Чтение онлайн

на главную

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

theMoments = "Осталась секунда!"

 End If

 theCount = theCount - 1 'Уменьшаем значение счетчика

Wend

theMoments = "ВЗРЫВ!"

Цикл Do…Loop

Этот цикл может применяться в двух видах (с предусловием, которое проверяется до начала очередной итерации, и с пост-условием, которое проверяется после окончания итерации):

Do [While | Until] условие

 тело цикла

 [Exit Do]

 тело цикла

Loop

или

Do

 тело цикла

 [Exit Do]

 тело цикла

Loop [While | Until] условие

Если в цикле используется ключевое слово

While
, то итерации продолжаются до тех пор, пока
условие
равно
true
; если же применяется
Until
, то как только значением условия станет
true
, произойдет выход из цикла.

Оператор

Exit Do
позволяет выйти из цикла до завершения его итераций.

Пример использования цикла

Do…Loop
приведен в листинге П2.4.

Листинг П2.4. Пример использования цикла
Do…Loop

Dim howFar 'Верхний предел для счетчика цикла

Dim sum(10) 'Массив из 11 элементов, индексы от 0 до 10

Dim icount, theSum

howFar = 10

theSum = 0

sum(0) = 0

'Цикл выполнится 11 раз

Do

 theSum = theSum+icount

 sum(icount) = theSum

 icount=icount+l

Loop While (icount < howFar)

Прочие

операторы

Рассмотрим еще несколько часто применяемых операторов (табл. П2.13).

Таблица П2.13. Прочие операторы

Оператор Описание
.
Точка. Применяется для доступа к свойству объекта или для вызова его метода
Скобки. Применяются либо для изменения порядка вычисления выражений, либо для передачи параметров функциям, либо для индексирования массива
&
Оператор конкатенации (склеивание между собой) символьных строк
With…End With
Позволяет обращаться к свойствам объекта без написания имени этого объекта

Обработка исключительных ситуаций

Режим обработки исключительных ситуаций в VBScript включается с помощью оператора

On Error Resume Next
. Если после этого при исполнении какою-либо оператора в сценарии произойдет ошибка времени выполнения, то управление передастся к следующему оператору в тексте.

Для анализа ошибок используется специальный объект

Err
, который содержит два свойства:
Number
— числовой код возникшей ошибки и
Description
— краткое описание этой ошибки.

В качестве примера приведем часть сценария, в которой происходит обработка исключительных ситуаций при подключении сетевого диска:

On Error Resume Next ' Включаем обработку ошибок времени выполнения

' Подключаем сетевой диск

WshNetwork.MapNetworkDrive Drive, NetPath

If Err.Numbero<>0 Then

 Mess="Ошибка при подключении диска " & Drive & " к " & NetPath &_

"Код ошибки: " & е.number & "Описание: " & е.description

 WshShell.Popup Mess, 0, "Подключение сетевого диска", vbCritical

Else

 ' Все в порядке

 Mess = "Диск " & Drive & " успешно подключен к " & NetPath

 WshShell.Popup Mess, 0, "Подключение сетевого диска", vbInformation

End If

Для отмены режима обработки исключительных ситуаций нужно выполнить оператор

On Error Goto 0
.

Процедуры и функции 

VBScript поддерживаются два вида подпрограмм: встроенные функции и функции или процедуры пользователя.

Математические функции

Имеющиеся в VBScript функции, предназначенные для математических вычислений, описаны в табл. П2.14.

Таблица П2.14. Математические функции

Функция Описание
Abs(x)
Возвращает абсолютное значение числа
х
Atn(x)
Возвращает арктангенс числа
х
Cos(x)
Возвращает косинус числа
х
Exp(x)
Экспоненциальная функция, возвращает число е, возведенное в степень
х
Int(x)
Возвращает целую часть числа
х
Log(х)
Возвращает натуральный логарифм числа
х
Rnd[(х)]
Возвращает случайное число от 0 до 1
Round(х[, nvmdecimal])
Возвращает результат округления числа
х
с точностью до
numdecimal
знаков после запятой
Sgn(х)
Знаковая функция числа
х
Sin(х)
Возвращает синус числа
х
Sqr(х)
Вычисляет квадратный корень из числа
х
и возвращает полученное значение
Tan(x)
Возвращает тангенс числа
х

Символьные функции

Наиболее часто используемые функции, с помощью которых можно производить различные операции над символьными строками, описаны в табл. П2.15.

Таблица П2.15. Символьные функции

Функция Описание 
Asc(str)
 
Возвращает ASCII-код первого символа в строке
str
 
Chr(code)
 
Возвращает символ с ASCII-кодом
code
 
InStr([start,] str1, str2[, compare])
 
Возвращает индекс символа, с которого начинается первое вхождение подстроки
str2
в строку
str1
. Параметр
start
задает номер символа, с которого следует начинать поиск. Если этот параметр не задан, то поиск производится с начала строки. Поиск производится слева направо. Параметр
compare
задает режим сравнения при обработке строк (0 — двоичное, сравнение, 1 — текстовое сравнение) 
InStrRev(str1, str2[, start[, compare]])
 
То же самое, что функция
InStr
, но поиск производится справа налево, т.е. возвращается номер последнего символа, с которого начинается вхождение подстроки
str2
в строку
str1
 
Join(list[,delim])
 
Возвращает строку, полученную в результате конкатенации подстрок, содержащихся в массиве
list
. Параметр
delim
задает символ, разделяющий подстроки (по умолчанию таким символом является пробел) 
LCase(str)
Возвращает строку, в которой все алфавитные символы преобразованы к нижнему регистру
Left(str, len)
Возвращает
len
символов с начала строки
str
Len(str)
Возвращает число символов в строке
str
LTrim(str), RTrim(str), Trim(str)
Удаляет из строки
str
начальные, конечные или и те и другие пробелы соответственно
Mid(str, start[, len])
Возвращает из строки
str
подстроку, которая начинается с позиции
start
и имеет длину
len
. Если параметр
len
не
указан, то возвращаются все символы, начиная с позиции
start
до конца строки
str
Replace(expr, find, replacewith[, start[, count[, compare]]])
Возвращает строку, которая получается из строки
expr
путем замен входящих в нее подстрок
find
на подстроки
replacewith
. Параметр
count
определяет число подстрок, которые будут обработаны таким образом (по умолчанию производятся все возможные замены). Параметр
compare
задает режим сравнения при работе со строками (0 — двоичное сравнение, 1 — текстовое сравнение)
Right(str, len)
Возвращает
len
символов с конца строки
str
Space(x)
Возвращает строку, состоящую из
х
пробелов
Split(Expr[, delim[, count[, compare]]])
Возвращает массив строк, полученных в результате разбиения строки
Expr
на подстроки. Параметр
delim
задает символ, разделяющий подстроки (по умолчанию таким символом является пробел). Параметр
count
определяет число подстрок, которые будут обработаны таким образом (по умолчанию в массив записываются все подстроки). Параметр
compare
задает режим сравнения при работе со строками (0 — двоичное сравнение, 1 — текстовое сравнение)
StrComp(str1, str2[, compare])
Возвращает число — результат сравнения строк
str1
и
str2
. Если
str1<str2
, то возвращается -1; если
str1=str2
, то возвращается 0; если
str1>str2
, то возвращается 1. Параметр
compare
задает режим сравнения при работе со строками (0 — двоичное сравнение, 1 — текстовое сравнение)
String(number, char)
Возвращает строку, состоящую из
number
символов
char
UCase(str)
Возвращает строку, в которой все алфавитные символы преобразованы к верхнему регистру

Для работы с датой и временем в VBScript имеется большой набор функций, основные из которых приведены в табл. П2.16.

Таблица П2.16. Функции для работы с датой и временем

Функция Описание
Date
Возвращает текущую системную дату
DateAdd(interval, number, date)
Возвращает дату, отстоящую от даты
date
на
number
интервалов, заданных параметром
interval
, который может принимать следующие значения: "уууу" — год, "q" — квартал, "m" — месяц, "у" — день года, "d" — день, "w" — неделя, "ww" — неделя года, "h"— час, "m" — минута, "s" — секунда
DateDiff(interval, date1, date2[, firstdayofweek [, firstweekofyear]])
Возвращает разницу в интервалах
interval
(возможные значения этого параметра те же, что и в функции
DateAdd
) между датами
date1
и
date2
. Параметр
firstdayofweek
— это константа, показывающая, какой из дней недели следует считать первым (см. табл. П2.3, П2.4). Параметр
firstweekofyear
— это константа, показывающая, какую неделю следует считать первой в году (см. табл. П2.4)
DatePart(interval, date [, firstdayofweek [, firstweekofyear]])
Возвращает ту часть даты
date
, которая соответствует параметру
interval
. Значения параметров
interval, firstdayofweek
и
firstweekofyear
здесь те же, что и в функции
DateDiff
DateSerial(year, month, day)
Возвращает переменную подтипа
Date
, которая соответствует указанным году (параметр
year
), месяцу (параметр
month
) и дню (параметр
day
)
DateValue(date)
Возвращает переменную
Variant
подтипа
Date
, которая соответствует дате, заданной символьным параметром
date
Hour(time)
Выделяет номер часа из даты или момента времени, заданных параметром
time
. Возвращает целое число от 0 до 23
IsDate(expr)
Возвращает
true
, если параметр
expr
задает корректную дату, и
false
в противном случае
Minute(time)
Выделяет количество минут из даты или момента времени, заданных параметром
time
. Возвращает целое число от 0 до 59
Month(date)
Выделяет номер месяца из даты, заданной параметром
date
. Возвращает целое число от 1 до 12
MonthName(month[, abbr])
Возвращает наименование для месяца с номером
month
. Если логический параметр
abbr
равен
true
, то наименование месяца представляется в виде аббревиатуры, в противном случае — в полном виде
Now
Возвращает текущие дату и время в виде, соответствующем региональным настройкам Windows
Time
Возвращает текущее системное время
Timer
Возвращает количество секунд, прошедших с полуночи
TimeSerial(hour, minute, second)
Возвращает переменную подтипа
Date
, которая соответствует указанным часу (параметр
hour
), минуте (параметр
minute
) и секунде (параметр
second
)
TimeValue(time)
Возвращает переменную подтипа
Date
, которая соответствует времени, заданному символьным параметром
time
Weekday(date[, firstdayofweek])
Возвращает целое число — день недели для даты, заданной параметром
date
. Параметр
firstdayofweek
— это константа, показывающая, какой из дней недели следует считать первым
WeekdayName(weekday[, abbr[, firstdayofweek]])
Возвращает наименование для дня недели с порядковым номером
weekday
. Если логический параметр
abbr
равен
true
, то наименование дня недели представляется в виде аббревиатуры, в противном случае — в полном виде. Значение параметра
firstdayofweek
здесь то же, что и в функции
Weekday
Year(date)
Выделяет год из даты, заданной параметром
date
, и возвращает это целое число
Поделиться:
Популярные книги

Вечный. Книга V

Рокотов Алексей
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга V

Чехов. Книга 3

Гоблин (MeXXanik)
3. Адвокат Чехов
Фантастика:
альтернативная история
5.00
рейтинг книги
Чехов. Книга 3

Последний попаданец 9

Зубов Константин
9. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 9

Серые сутки

Сай Ярослав
4. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Серые сутки

Ты нас предал

Безрукова Елена
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал

Кодекс Охотника. Книга XXIII

Винокуров Юрий
23. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIII

На границе империй. Том 7. Часть 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 7. Часть 4

Нефилим

Демиров Леонид
4. Мания крафта
Фантастика:
фэнтези
боевая фантастика
рпг
7.64
рейтинг книги
Нефилим

Провинциал. Книга 1

Лопарев Игорь Викторович
1. Провинциал
Фантастика:
космическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Провинциал. Книга 1

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Солдат Империи

Земляной Андрей Борисович
1. Страж
Фантастика:
попаданцы
альтернативная история
6.67
рейтинг книги
Солдат Империи

Дурашка в столичной академии

Свободина Виктория
Фантастика:
фэнтези
7.80
рейтинг книги
Дурашка в столичной академии

Сиротка

Первухин Андрей Евгеньевич
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Сиротка

Сумеречный стрелок 7

Карелин Сергей Витальевич
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 7