Dynamik HTML
© Питер, 2000

Обработка массивов

Dim -- объявляет переменную-массив. Она может быть статической с постоянным количеством элементов или динамической и может иметь до 60 измерений.
ReDim -- используется для изменения размера переменной-массива, объявленной как динамическая.
Preserve -- ключевое слово, используемое для сохранения содержимого массива при изменении его размера. Если вы используете это слово, вы можете изменять лишь элементы, находящиеся справа.

Dim strEmpl ( )
ReDim strEmlp (9 , 1)

strEmpl (9 , 1) = "Phil"

ReDim strEmpl (9 , 2) ' теряем содержимое элемента (9 , 1)
strEmpl (9 , 2) = "Paul"

ReDim Preserve strEmpl (9 , 3) ' сохраняем содержимое элемента (9 , 2)
strEmpl (9 , 2) = "Smith"

LBound -- возвращает наименьший индех для данного массива. Учитывая, что массивы всегда начинаются с нулевого элемента, данная функция всегда будет возвращать ноль.
UBound -- используется для задания размера массива.

Dim strCustom (10,5)
intSizeFirst = UBound (strCustom , 1) ' присваиваем значение 10 переменной SizeFirst
intSizeSecond = UBound (strCustom , 2) ' присваиваем значение 5 переменной SizeSecond


ПРИМЕЧАНИЕ        На самом деле размер массива на 1 больше того, что возвращает UBound, так как массив всегда начинается с нулевого элемента.

Операторы присваивания

Let -- используется для присваивания переменной значения (необязателен)
Set -- используется для присваивания переменной ссылки на объект.

Let intNumberOf Days = 365
Let txtTextBox = txtControl
txtTextBox.Value = "Привет Всем !"

Управляющие операнды

For ... Next - выполняет часть кода заданное число раз.

For counter = 1 to 12
   result = 5 * counter
   MsgBox counter & " пять раз будет " & result
Next counter

For Each ... Next Statement - выполняет часть кода для всех элементов массива или коллекции.

For Each Item In Request.QueryString("MyControl")
   Response.Write Item & "<br>"
Next

Do ... Loop - выполняет часть кода до тех пор, пока условие выполняется, или до тех пор, пока оно не станет выполнятся (в зависимости от конструкции).

password = InputBox("Введите ваш пароль")
Do Until possword = "No Pasaran"
   MsgBox "Неправильно введенный пароль. Попробуйте еще раз!"
   password = InputBox("Введите ваш пароль")
Loop
или ...
Do
   MsgBox ("Вставай, пора работать!")
   ...
Loop Until strDayOfWeek = "Суббота" Or strDayOfWeek = "Воскресенье"
или ...
Do While strDayOfWeek <> "Суббота" And strDayOfWeek <> "Воскресенье"
   MsgBox ("Вставай, пора работать!")
   ...
Loop

If ... Then ... Else - используется для запуска различных блоков кода при выполнении различных условий.

If AmountPurchased >10000 Then
    DiscountAmount = AmountPurchased * .10
    Subtotal=AmountPurchased - DiscountAmount
 Else
    HandlingFee = AmountPurchased * .3
    Subtotal=AmountPurchased + HandlingFee
End If

Select Case - используется для замены оператора If ... Then ... Else при большом количестве условий.

Select Case Document.frmOrder.txtState.Value
   Case "California"
      ShippingFee = .04
   Case "Florida"
      ShippingFee = .03
   Case Else
      ShippingFee = .02
End Select

While ... WEnd - выполняет блок кода, пока выполняется условие.

While strDayOfWeek <> "Суббота" And strDayOfWeek <> "Воскресенье"
    MsgBox ("Вставай, пора работать!")
    ...
WEnd

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

Dim -- объявляет переменную.

Обработка ошибок

On Error Resume Next - указывает, что при появлении ошибки необходимо ее игнорировать и начать дальнейшую обработку кода со следующей строки.
Err - объект error, содержащий информацию об ошибках выполнения.

Возможности для обработки ошибок в VBScript ограничены, и для выяснения, произошла ли ошибка, необходимо явно проверять объект Err.

Операции ввода-вывода

Для вывода сообщений служит конструкция MsgBox, для ввода - InputBox.

MsgBox

Она выдает сообщение и может возвращать значение, показывающее, какая кнопка нажата.
MsgBox "Hello There", 35, "Hello Message"

Параметры:

"Hello There" -- содержит текст сообщения. Это обязательный параметр.
35 -- указывает, какие картинка и кнопки появятся в окне сообщения.
"Hello Message" -- текст заголовка окна сообщения.

Если добавить путь к файлу справки (например: "\win\help\MyHelp.hlp"), то в окне появится кнопка Help и определяется , какой файл справки будет вызван при ее нажатии.

Значения пареметра, определяющего картинку и кнопки:


Константа Значение Кнопки

vbOkOnly 0 Ок
vbOkCancel 1 Ок & Cancel
vbAbortRetryIgnore 2 Abort & Retry & Ignore
vbYesNoCancel 3 Yes & No & Cancel
vbYesNo 4 Yes & No
vbRetryCancel 5 Retry & Cancel
vbDefaultButton1 0 По умолчанию активна первая кнопка слева
vbDefaultButton2 256 По умолчанию активна вторая кнопка слева
vbDefaultButton3 512 По умолчанию активна третья кнопка слева
vbDefaultButton4 768 По умолчанию активна четвертая кнопка слева

Константа Значение Описание (картинка)

vbCritical 16 Важное сообщение
vbQuestion 32 Вопрос
vbExclamation 48 Предупреждение
vbInformation 64 Информационное сообщение

Константа Значение Описание

vbApplicationModal 0 Пока пользователь не нажмет кнопку, работа приложения останавливается.
vbSystemModal 4096 Пока пользователь не нажмет кнопку, останавливается работа всей системы.

Для задания конкретной картинки и кнопок необходимо сложить соответствующие величины. Так, в примере сложили 32+3 для изображения кнопок Да, Нет и Отмена, где Да - активна по умолчанию, и картинка вопроса.

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

intButtonClicked = MsgBox ("Hello There", 35, "Hello Message")

Заметим, что при использовании такой инструкции параметры функции заключены в скобки. В следующей таблице показаны значения, присваемые при этом переменной intButtonClicked.


Константа Значение Нажатая кнопка

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

InputBox

Воспринимает текстовую запись пользователя и передает ее коду как строку.
strEntered=InputBox ("Введите ваше имя, пожалуйста", "Login", "Джон Смит", 500, 500)
MsgBox "Hello There" & strEntered, 35, "Hello Message"

"Введите ваше имя, пожалуйста" - строка, показываемая в окне ввода.
"Login" - сообщение в заголовке.
"Джон Смит"
- значение, определенное по умолчанию для поля ввода.
500
- определяет координату по горизонтали окна ввода.
500
- определяет координату по вертикали окна ввода.

Аналогично можно задать файл подсказки и кнопку для его вызова.

Процедуры

Call - необязательный метод для вызова подпрограммы.
Function - используется для объявления функции.
Sub - используется для объявления подпрограммы.

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


' Следующая функция, определенная пользователем, возвращает
' квадратный корень из переданного ей аргумента.
Function CalculateSquareRoot(NumberArg As Double) As Double
    If NumberArg <0 Then ' Анализирует аргумент.
       Exit Function ' Возврат в вызывающую процедуру.
    Else
       CalculateSquareRoot = Sqr(NumberArg) ' Возвращает квадратный корень.
   End If
End Function

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


' Описание процедуры Sub.
' Процедура Sub с двумя аргументами.
Sub SubComputeArea(Length, TheWidth)
      Dim Area As Double	' Объявляет локальную переменную.
      If Length = 0 Or TheWidth = 0 Then
         ' Если хотя бы один из аргументов равен 0.
         Exit Sub	' Немедленно завершает процедуру Sub.
      End If
      Area = Length * TheWidth	' Вычисляет площадь прямоугольника.
      Debug.Print Area	' Выводит полученное значение в окно отладки.
End Sub

Другие ключевые слова

Rem - старый метод для добавления комментариев в код.
Option Explicit - заставляет объявлять переменную до того, как она может быть использована.


А так же на страницах сайта можно прочесть о VBScript:
Константы | Учебник по VBScript | Функции | Коды ошибок выполнения

На главную | Пишите нам


 

 
Hosted by uCoz