Онлайн библиотека PLAM.RU


  • Строки кода и комментарии
  • Переменные
  • Подтипы данных
  • Константы
  • Массивы 
  • Операторы
  • Арифметические операторы
  • Операторы отношения и логические операторы
  • Условные операторы
  • Операторы циклов 
  • Цикл For…Next
  • Цикл For Each…Next
  • Цикл While…Wend
  • Цикл Do…Loop
  • Прочие операторы
  • Обработка исключительных ситуаций
  • Процедуры и функции 
  • Математические функции
  • Символьные функции
  • Функции для работы с массивами
  • Функции для работы с подтипами данных
  • Прочие функции
  • Функции и процедуры пользователя
  • Приложение 2

    Справочник по языку VBScript

    Язык VBScript (Visual Basic Script Edition) является урезанной версией языка Microsoft Visual Basic, поэтому для тех, кто программировал на Visual Basic или VBA, язык VBScript окажется очень знакомым.

    Строки кода и комментарии

    В отличие от JScript, для сценариев VBScript в конце строки не нужно ставить точку с запятой. В случае необходимости написания одного оператора на нескольких строках в конце этих строк нужно ставить символ подчеркивания "_":

    s = "Символьная " & _

     "строка"

    Комментарием в VBScript считаются все символы в строке, идущие после символа апострофа

    '
    или ключевого слова
    Rem
    . Например:

    Rem Этот комментарий занимает всю строку

    theSum=1 'А этот — часть строки
     

    Переменные

    Переменные в VBScript могут быть глобальными (доступными из любого места сценария) и локальными (область действия ограничивается блоком кода, в котором они определены). Все переменные VBScript имеют стандартный тип

    Variant
    . Объявляются переменные обычно с помощью ключевого слова
    Dim
    , например:

    Dim MyVariable

    По умолчанию переменные в VBScript можно предварительно не объявлять; для включения режима обязательного объявления переменных нужно вставить в самую первую строку сценария выражение

    Option Explicit
    .

    Язык VBScript является регистро-независимым, т.е. имена

    MyVariable
    и
    myvariable
    представляют одинаковые переменные. При выборе имен переменных следует придерживаться следующих правил:

    ? имя переменной должно начинаться с буквы и не должно содержать символа "

    ,
    ".

    ? имя переменной не должно превышать 255 символов.

    Значения переменным в VBScript присваиваются с помощью оператора "

    =
    ". Например:

    Dim MyVariable MyVariable = "Привет!"

    Здесь мы объявили переменную

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

    MyVariable = 10

    Подтипы данных

    Хотя в VBScript определен только один тип

    Variant
    , внутри этого типа имеется разделение на подтипы, описание которых приведено в табл. П2.1. Для преобразования переменных к определенному подтипу нужно использовать соответствующую функцию преобразования; такие функции также представлены в табл. П2.1.


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

    Подтип Функция преобразования Описание
    Empty
    Автоматически присваивается новым переменным, когда для них еще не определено явное значение
    Null
    Указывает на то, что переменная не содержит допустимых значений
    Bool
    CBool(x)
    Используется для работы с логическими переменными, принимающим два допустимых значения:
    true
    или
    false
    Byte
    CByte(x)
    Содержит целые числа в диапазоне от 0 до 255
    Integer
    CInt(X)
    Содержит целые числа в диапазоне от –32768 до 32768
    Currency
    CCur(x)
    Специальный числовой формат для денежных величин
    Long
    CLng(x)
    Содержит целые числа в диапазоне от -2147483648 до 2147483647
    Single
    CSngl(x)
    Тип чисел с плавающей точкой одинарной точности
    Double
    CDbl(x)
    Тип чисел с плавающей точкой двойной точности
    Date/Time
    CDate(x)
    Содержит числа, соответствующие датам и времени от 1 января 100 года до 31 декабря 9999 года
    String
    CStr(x)
    Символьный подтип данных. Текстовые строки в VBScript — это последовательность символов, заключенных в двойные кавычки
    Object
    Ссылка на объект
    Error
    Тип данных, предназначенный для хранения номеров ошибок

    В переменную, которая была ранее объявлена с использованием ключевого слова

    Dim
    , можно записать ссылку на какой-либо объект. Делается это с помощью оператора
    Set
    , например:

    Dim FSO

    Set FSO=CreateObject("Scripting.FileSystemObject")

    Здесь функция

    CreateObject()
    возвращает экземпляр объекта
    FileSystemObject
    , ссылка на который заносится в переменную
    FSO
    .

    После того как ссылка на объект станет ненужной, переменную можно освободить с помощью ключевого слова

    Nothing
    :

    Set FSO=Nothing

    Константы

    Пользовательские константы в VBScript объявляются с помощью ключевого слова

    Const
    , например:

    Const MyConst="Это моя константа"

    Кроме этого, VBScript поддерживает много встроенных именованных констант (их не нужно дополнительно объявлять в сценарии), применение которых упрощает использование различных внутренних функций (например,

    MsgBox()
    или
    InputBox()
    ). Имена, значения и описания внутренних констант приведены в табл. П2.2–П2.9.


    Таблица П2.2. Константы для обозначения цветов

    Имя Значение Описание
    vbBlack
    &h00 Черный цвет
    vbRed
    &hFF Красный цвет
    vbGreen
    &hFF00 Зеленый цвет
    vbYellow
    &hFFF Желтый цвет
    vbBlue
    &hFF0000 Синий цвет
    vbMagenta
    &hFF00FF Фиолетовый цвет
    vbCyan
    &hFFFF00 Бирюзовый цвет
    vbWhite
    &hFFFFFF Белый цвет

    Таблица П2.3. Константы для нумерации дней недели

    Имя Значение Описание
    vbSunday
    1 Воскресенье
    vbMonday
    2 Понедельник
    vbTuesday
    3 Вторник
    vbWednesday
    4 Среда
    vbThursday
    5 Четверг
    vbFriday
    6 Пятница
    vbSaturday
    7 Суббота

    Таблица П2.4. Константы для определения первого дня в неделе и первой недели в году

    Имя Значение Описание
    vbUseSystemDayOfWeek
    0 Использовать для определения первого дня недели региональные настройки системы
    vbFirstJan1
    1 Первой неделей в году считается та, в которой было 1 января
    vbFirstFourDays
    2 Первой неделей в году считается та, в которой было по крайней мере четыре дня нового года
    vbFirstFullWeek
    3 Первой неделей в году считается первая полная неделя

    Таблица П2.5. Константы для работы с датой и временем

    Имя Значение Описание
    vbGeneralDate
    0 Дата и время выводятся в формате, определяемом региональными настройками системы
    vbLongDate
    1 Выводить дату, используя полный формат
    vbShortDate
    2 Выводить дату, используя краткий формат
    vbLongTime
    3 Выводить время, используя полный формат
    vbShortTime
    4 Выводить время, используя краткий формат

    Таблица П2.6. Константы для диалоговых окон

    Имя Значение Описание
    vbOkOnly
    0 Выводится кнопка OK
    vbOkCancel
    1 Выводятся кнопки OK и Отмена (Cancel)
    vbAbortRetryIgnore
    2 Выводятся кнопки Стоп (Abort), Повтор (Retry) и Пропустить (Ignore)
    vbYesNoCancel
    3 Выводятся кнопки Да (Yes), Нет (No) и Отмена (Cancel)
    vbYesNo
    4 Выводятся кнопки Да (Yes) и Нет (No)
    vbRetryCancel
    5 Выводятся кнопки Повтор (Retry) и Отмена (Cancel)
    vbCritical
    16 Выводится значок Stop Mark
    vbQuestion
    32 Выводится значок Question Mark
    vbExclamation
    48 Выводится значок Exclamation Mark
    vbInformation
    64 Выводится значок
    Information Mark
    vbDefaultButton1
    0 По умолчанию в окне выбирается первая кнопка
    vbDefaultButton2
    256 По умолчанию в окне выбирается вторая кнопка
    vbDefaultButton3
    512 По умолчанию в окне выбирается третья кнопка
    vbDefaultButton4
    768 По умолчанию в окне выбирается четвертая кнопка
    vbApplicationModal
    0 Диалоговое окно выводится в модальном режиме
    vbSystemModal
    4096 Диалоговое окно выводится в модальном режиме и располагается сверху всех запускаемых приложений

    Таблица П2.7. Результаты нажатия кнопок в диалоговых окнах

    Имя Значение Описание
    vbOk
    1 Нажата кнопка OK
    vbCancel
    2 Нажата кнопка Отмена (Cancel)
    vbAbort
    3 Нажата кнопка Стоп (Abort)
    vbRetry
    4 Нажата кнопка Повтор (Retry)
    vbIgnore
    5 Нажата кнопка Пропустить (Ignore)
    vbYes
    6 Нажата кнопка Да (Yes)
    vbNo
    7 Нажата кнопка Нет (No)

    Таблица П2.8. Константы для обозначения подтипов данных

    Имя Значение Описание
    vbEmpty
    0 Переменная не инициализирована
    vbNull
    1 Переменная не содержит корректных данных
    vbInteger
    2 Переменная имеет подтип
    Integer
    vbLong
    3 Переменная имеет подтип
    Long
    vbSingle
    4 Переменная имеет подтип
    Single
    vbDouble
    5 Переменная имеет подтип
    Double
    vbCurrency
    6 Переменная имеет подтип
    Currency
    vbDate
    7 Переменная имеет подтип
    Date
    vbString
    8 Переменная имеет подтип
    String
    vbObject
    9 Переменная имеет подтип
    Object
    vbError
    10 Переменная имеет подтип
    Error
    vbBoolean
    11 Переменная имеет подтип
    Boolean
    vbVariant
    12 Переменная имеет подтип
    Variant
    (только для массивов переменных типа
    Variant
    )
    vbDataObject
    13 Объект доступа к данным
    vbDecimal
    14 Переменная имеет подтип
    Decimal
    vbByte
    17 Переменная имеет подтип
    Byte
    vbArray
    8192 Переменная является массивом

    Таблица П2.9. Прочие константы

    Имя Значение Описание
    vbCr
    Chr(13) Возврат каретки
    vbCrLf
    Chr(13) & Chr(10) Возврат каретки и перевод строки
    vbFormFeed
    Chr(12) Перевод страницы
    vbLf
    Chr(10) Перевод строки
    vbNullChar
    Chr(0) Символ с нулевым кодом
    vbNullString
    Нулевая строка Нулевая строка
    vbTab
    Chr(9) Символ табуляции
    vbVerticalTab
    Chr(11) Символ вертикальной табуляции
    vbUseDefault
    -2 Использовать значения по умолчанию из региональных настроек системы
    vbTrue
    -1 Логическое значение "истина"
    vbFalse
    0 Логическое значение "ложь"
    vbObjectError
    -2147221504 Определяет минимальное значение для номеров ошибок, задаваемых пользователем

    Массивы 

    Массивы в VBScript могут быть двух видов: статические (фиксированной длины) и динамические (переменной длины). Объявляются массивы, как и обычные переменные, с помощью ключевого слова

    Dim
    .

    Для объявления статического массива нужно после его названия указать в круглых скобках наибольшее значение, которое может принимать индекс элемента в этом массиве, например:

    Dim MyArr(10)

    В языке VBScript (в отличие, например, от VBA) нумерация в массивах всегда начинается с нуля, поэтому объявленный выше массив

    MyArr
    будет содержать 11 элементов, обращаться к которым нужно следующим образом:

    MyArr(0)="Это первый элемент"

    MyArr(1)="Это второй элемент"

    MyVar=MyArr(0)

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

    Dim MyArr(5, 10) 'Массив из 6 строк и одиннадцати столбцов

    При объявлении динамического массива его размеры в круглых скобках не указываются:

    Dim MyArr()

    Для использования динамического массива в сценарии применяется оператор

    ReDim
    , который определяет конкретную длину массива, например:

    ReDim MyArray(10)

    После этого к элементам динамического массива можно обращаться так же, как и к элементам обычного:

    MyArr(0)="Это первый элемент"

    MyArr(1)="Это второй элемент"

    Отметим, что размеры динамического массива можно менять неоднократно (с помощью того же

    ReDim
    ). Для сохранения при этом содержимого массива следует в операторе
    ReDim
    использовать ключевое слово
    Preserve
    , например:

    ReDim Preserve MyArray(20)

    Операторы

    В VBScript поддерживаются операторы нескольких типов, которые описаны ниже.

    Арифметические операторы

    Арифметические операторы языка VBScript представлены в табл. П2.10.


    Таблица П2.10. Арифметические операторы

    Оператор Описание
    -
    (унарный оператор)
    Изменение знака аргумента на противоположный
    -
    (бинарный оператор)
    Вычитание двух чисел
    +
    Сложение двух чисел
    *
    Умножение двух чисел
    /
    Деление двух чисел
    \
    Целочисленное деление двух чисел
    Mod
    Вычисление остатка от деления двух чисел
    ^
    Оператор возведения в степень

    Операторы отношения и логические операторы

    Операторы отношения используются для сравнения значений двух переменных. Эти операторы, описанные в табл. П2.11, могут возвращать только логические значения

    true
    или
    false
    .


    Таблица П2.11. Операторы отношения

    Оператор Условие, при котором возвращается
    true
     
    >
    Левый операнд больше правого 
    >=
    Левый операнд больше или равен правому 
    <
    Левый операнд меньше правого 
    <=
    Левый операнд меньше или равен правому 
    =
    Левый операнд равен правому 
    <>
    Левый операнд не равен правому 

    Также внутри условных операторов могут применяться логические операторы (табл. П2.12).


    Таблица П2.12. Логические операторы

    Оператор Описание 
    Not
    Оператор отрицания. Возвращает
    true
    , если операнд равен
    false
    . В противном случае возвращает
    false
     
    Or
    Оператор отношения "ИЛИ". Возвращает
    true
    , если один из операндов равен
    true
    . В противном случае возвращает
    false
     
    Xor
    Оператор отношения "ИСКЛЮЧАЮЩЕЕ ИЛИ". Возвращает
    true
    , если один из операндов равен
    true
    , а другой равен
    false
    . В противном случае возвращает
    false
     
    And
    Оператор отношения "И". Возвращает
    true
    , если оба операнда равны
    true
    . В противном случае возвращает
    false
     

    Условные операторы

    В VBScript поддерживается условный оператор

    If…Then…Else
    . Общий вид этого оператора:

    If условие_1 Then

     выражение_1

    [ElseIf условие_2 Then

     выражение_2]

    [Else

     выражение_3]

    End If

    При выполнении оператора

    If…Then…Else
    оценивается логическое условие (условие_1), стоящее после ключевого слова
    If
    . Если в результате оценки условия получилось значение
    true
    , то выполняется
    выражение_1
    и происходит выход из оператора. В противном случае начинают по очереди проверяться условия, стоящие после ключевых слов
    ElseIf
    ; если одно из этих условий истинно, то выполняется соответствующее выражение, после чего управление передается следующему после End If оператору. Если ни одно из проверяемых условий не является истинным, выполняется выражение, стоящее после ключевого слова
    Else
    . Пример:

    If (theCount > 1) Then

     theMoments = "До взрыва осталось " & theCount & " сек!"

    Else

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

    End If

    Другим оператором, позволяющим производить выбор из нескольких вариантов, является

    Select Case
    . Синтаксис этого оператора:

    Select Case выражение

    Case значение_1

     выражение

    [Case значение_2

     выражение_2]

    [Case Else

     выражение_3]

    End Select

    Здесь сначала вычисляется значение

    выражения
    , которое затем по очереди сравнивается со значениями, стоящими после ключевых слов
    Case
    . В случае совпадения выполняются операторы в соответствующем блоке
    Case
    . Если же ни одно из имеющихся значений не совпадает со значением
    выражения
    ,
    то выполняются операторы, стоящие после слова
    Case
    Else. Пример использования оператора
    Select Case
    :

    Select Case MyVar

    Case vbRed

     Color = "Красный"

    Case vbGreen

     Color = "Зеленый"

    Case vbBlue

     Color = "Синий"

    Case Else

     Color = "Цвет непонятен"

    End Select

    Операторы циклов 

    В VBScript поддерживаются несколько типов циклов: цикл

    For…Next
    , цикл
    Do…Loop
    , цикл
    While…Wend
    , цикл
    For Each…Next
    . Рассмотрим каждый из них подробнее.

    Цикл For…Next

    В общем случае оператор цикла

    For…Next
    записывается следующим образом:

    For counter=start То end [Step step]

     тело цикла

     [Exit For]

     тело цикла

    Next

    Параметр

    counter
    здесь является счетчиком цикла;
    start
    — начальное значение этого счетчика;
    end
    — конечное значение;
    step
    — шаг приращения счетчика. Если ключевое слово
    Step
    не указано, то шаг приращения берется равным единице. Выход из цикла
    For…Next
    происходит, когда значение счетчика
    counter
    становится больше, чем значение параметра
    end
    . Выражение
    Exit For
    используется для безусловного выхода из цикла.

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

    for
    приведен в листинге П2.1.

    Листинг П2.1. Пример использования цикла
    For…Next

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

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

    Dim icount, theSum

    howFar = 10

    theSum = 0

    sum(0) = 0

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

    For icount = 0 To howFar

     theSum=theSum+icount

     sum (icount) = theSum

    Next

    Цикл For Each…Next

    Оператор цикла

    For Each…Next
    предназначен для перебора всех элементов массива или коллекции:

    For Each element In group

    тело цикла

     [Exit For]

     тело цикла

    Next [element]

    Здесь параметр

    element
    является переменной, в которую будет записываться значение текущего элемента массива или коллекции при итерациях;
    group
    — имя массива или коллекции объектов.

    Замечание

    Напомним, что в JScript для перебора всех элементов коллекции необходимо использовать вспомогательный объект

    Enumerator
    .

    С помощью оператора

    Exit For
    можно осуществить немедленный выход из цикла.

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

    For Each…Next
    приведен в листинге П2.2.

    Листинг П2.2. Пример использования цикла
    For Each…Next

    'Объявляем переменные

    Dim FSO, Folder, Files, File, s

    s = "Список файлов" & vbCrLf

    'Создаем объект FileSystemObject

    Set FSO = CreateObject("Scripting.FileSystemObject")

    ' Создаем объект Folder для корневого каталога диска С:

    Set Folder = FSO.GetFolder("C:\")

    'Создаем коллекцию Files всех файлов в корневом каталоге диска С:

    Set Files = Folder.Files

    'Перебираем все элементы коллекции Files

    For Each File In Files

     'Выделяем имя файла для текущего элемента File коллекции

     s = s & File.Name & vbCrLf

    Next

    'Выводим сформированную строку на экран

    WScript.Echo s

    Цикл While…Wend

    Цикл

    While…Wend
    записывается в следующем виде:

    While условие

     тело цикла

    Wend

    Таким образом, в цикле

    While…Wend
    условие выполнения тела цикла проверяется перед началом очередной итерации. Если условие равно
    true
    , то тело цикла выполняется, в противном случае цикл завершается.

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

    While…Wend
    приведен в листинге П2.3.

    Листинг П2.3. Пример использования цикла
    While…Wend

    Dim theMoments, theCount

    theMoments = ""

    theCount = 42 'Начальное значение счетчика цикла

    While (theCount >= 1)

     If (theCount > 1) Then

      theMoments = "До взрыва осталось " & theCount & " сек!"

     Else

      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
    , и возвращает это целое число

    Функции для работы с массивами

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


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

    Функция Описание 
    Array(arglist)
     
    Возвращает значение типа
    Variant
    , которое является массивом, составленным из элементов списка
    arglist
    . Отдельные элементы в
    arglist
    должны быть отделены друг от друга запятой 
    IsArray(varname)
     
    Возвращает
    true
    , если переменная
    varname
    является массивом, и
    false
    в противном случае 
    LBound(arrayname[, dimension])
     
    Возвращает наименьшее значение, которое может принимать индекс в массиве
    arrayname
    . Параметр
    dimension
    определяет, для какой именно размерности массива мы ищем это наименьшее значение (1 для первой размерности, 2 для второй размерности и т.д.). По умолчанию
    dimension
    равно 1 
    UBound(arrayname[, dimension])
     
    Возвращает наибольшее значение, которое может принимать индекс в массиве
    arrayname
    . Параметр
    dimension
    определяет, для какой именно размерности массива мы ищем это наибольшее значение (1 для первой размерности, 2 для второй размерности и т.д.). По умолчанию
    dimension
    равно 1 

    Функции для работы с подтипами данных

    При рассмотрении подтипов данных мы уже описывали функции конвертации, которые применяются для преобразования переменной к тому или иному подтипу (см. табл. П2.9).

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


    Таблица П2.18. Функции для работы с подтипами данных

    Функция Описание 
    IsArray(expr)
     
    Возвращает
    true
    , если параметр
    expr
    является массивом, и
    false
    в противном случае 
    IsDate(expr)
     
    Возвращает
    true
    , если параметр
    expr
    задает корректную дату (т. е. переменная expr является переменной подтипа
    Date
    ), и
    false
    в противном случае 
    IsEmptу(expr)
     
    Возвращает
    true
    , если переменная
    expr
    объявлена, но не инициализирована 
    IsNull(expr)
     
    Возвращает
    true
    , если переменная
    expr
    не содержит никаких корректных данных 
    IsNumeric(expr)
     
    Возвращает
    true
    , если выражение
    expr
    может быть рассмотрено в качестве числа, и
    false
    в противном случае 
    IsObject(expr)
     
    Возвращает
    true
    , если переменная
    expr
    является указателем на внешний объект, и
    false
    в противном случае 
    VarType(varname)
     
    Возвращает числовое значение, соответствующее подтипу переменной
    varname
    (см. табл. П2.8)  

    Прочие функции

    Опишем еще несколько часто используемых функций (табл. П2.19).


    Таблица П2.19. Некоторые прочие функции

    Функция Описание
    CreateObject(servername.typename[, location])
    Создает экземпляр объекта-сервера автоматизации и возвращает ссылку на него. Здесь
    servername
    — имя приложения, являющегося сервером;
    typename
    — тип или класс создаваемого объекта;
    location
    — сетевое имя компьютера, на котором будет создан объект
    GetObject([pathname][, classname])
    Возвращает ссылку на объект класса
    classname
    , который хранится в отдельном файле, путь к которому задается параметром
    pathname
    Hex(number)
    Возвращает шестнадцатеричное представление (в символьном виде) числа
    number
    InputBox(prompt[, title] [, default] [, xpos][,ypos] [, helpfile, context])
    Выводит на экран диалоговое окно со строкой ввода и кнопками OK, Отмена и возвращает введенную в этом окне символьную строку. Параметр
    prompt
    задает сообщение, которое печатается перед строкой ввода;
    title
    определяет заголовок диалогового окна;
    default
    — значение, которое выводится по умолчанию в строку ввода. Параметры
    xpos
    и
    ypos
    определяют координаты левого верхнего угла окна. В случае необходимости элементам диалогового окна можно сопоставить контекстно-зависимую помощь. Параметр
    helpfile
    задает путь к файлу помощи, а число
    context
    — идентификатор содержания помощи
    MsgBox(prompt[, buttons] [, title] [, helpfile, context])
    Выводит на экран диалоговое окно с сообщением и различными кнопками и возвращает результат нажатия на одну из кнопок (возможные варианты возвращаемых функцией значений приведены в табл. П2.6). Параметр
    prompt
    задает сообщение,
    title
    определяет заголовок диалогового окна. Числовой параметр
    buttons
    определяет, какие именно кнопки должны быть представлены в окне (возможные значения этого параметра приведены в табл. П2.5). Параметры
    helpfile
    и
    context
    имеют то же значение, что и в функции
    InputBox
    Oct(number)
    Возвращает восьмеричное представление (в символьном виде) числа
    number

    Функции и процедуры пользователя

    Для определения процедуры, т.е. подпрограммы, которая не возвращает никакого значения, в VBScript используется конструкция

    Sub…End Sub
    . После названия процедуры в круглых скобках указывается список ее параметров, например:

    Sub MyProcedure(Param1, Param2)

     Dim Sum

     Sum = Param1+Param2

    End Sub

    Если процедура не имеет параметров, то в скобках после имени ничего указывать не нужно:

    Sub MyProcedure()

     …

    End Sub

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

    MyProcedure 3,10

    Во-вторых, можно использовать специальный оператор

    Call
    , при этом список параметров обязательно должен быть заключен в круглые скобки:

    Call MyProcedure(3, 10)

    Для определения функции, т.е. подпрограммы, которая возвращает определенное значение, применяется конструкция

    Function…End Function
    . Как и при описании процедур, после названия функции в круглых скобках указывается список ее параметров, например:

    Function MyFunction(Param1, Param2)

     …

    End Function

    Для того чтобы возвратить из функции какое-либо значение, нужно внутри функции присвоить это значение переменной, название которой совпадает с именем функции:

    Function MyFunction(Param1, Param2)

    Dim Sum

     Sum = Param1 + Param2

    MyFunction = Sum

    End Function

    Если возвращаемое функцией значение не нужно присваивать никакой переменной, то функция вызывается так же, как и процедура — пишется имя этой функции и через пробел указывается список ее аргументов:

    MyFunction 3, 5

    Если же необходимо записать значение функции в какую-либо переменную, то аргументы функции заключаются в круглые скобки:

    Dim а

    а = MyFunction(3, 5)









    Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное

    Все материалы представлены для ознакомления и принадлежат их авторам.