Сайт о телевидении

Сайт о телевидении

» » @я-дизайн проект - язык vbscript

@я-дизайн проект - язык vbscript


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 & "
" 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

В данном примере инструкция 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 | Функции | Коды ошибок выполнения На главную |

В этом начальном уроке, мы изучим синтаксис vbscript языка. Синтаксис языка vbscript является таким же как и в языке Visual Basic и фактически, является подмножеством данного языка программирования. Основной упор в использовании vbscript – это возможность написания сценариев (расширение vbs) с открытым кодом для платформы Windows. Пользователю не нужно прибегать к установке дополнительного программного обеспечения, так как все сценарии выполняются под управлением сервера сценариев .

И так, давайте рассмотрим базовый синтаксис vbscipt и его возможности.

  • Комментарии – для комментирования строк кода можно использовать ключевое слово REM , или одинарную кавычку (").
  • Строки кода – что бы произвести перенос одной строки на несколько, используется символ подчёркивания.
  • Переменные – для объявления переменных используется ключевое слово Dim . Более детально, работу с ними я рассмотрел в статье " "

Можно прописать несколько операторов в одну строчку, для этого используется знак двоеточия (:). Сам язык нечувствителен к регистру символов.

Хорошо, давайте рассмотрим синтаксис языка vbscript на таком примере:

REM Общий синтаксис vbscript REM primer_1.vbs "**************************************** dim a, b, c a = "строка" b = 100 c = 22.5 MsgBox a:MsgBox b:MsgBox c

Видим, что тут, мы вначале прописали комментарии, далее объявили три переменные. Как видим, язык vbscript не требует назначения типа данных (более детально, работу с типами данных я рассмотрел в статье – " "). В конце, для вывода данных мы использовали функцию MsgBox, в данном случае она прописана в упрощенном варианте. Давайте рассмотрим ее полный синтаксис:

MsgBox(prompt[, buttons] [, title ][, helpfile, context ]) – видим, что тут, функции передаются пять параметров, последние два мы рассматривать не будет, так как они не являются актуальными и практически не применяются.

  • prompt – собственно, сообщение, которое надо вывести
  • buttons – позволяет задать дополнительные кнопки, их значения указываются через константы
  • title – заголовок окна

Работу с данной функцией я более детально рассмотрел в статье " ".

Язык vbscript предоставляют также функции для работы со строками и датой, а также, ряд математических функций.

Конечно, синтаксис vbscript позволяет пользователю создавать собственные процедуры и функции. Для определения процедуры, т. е. подпрограммы, которая не возвращает никакого значения, в VBScript используется конструкция Sub ... End Sub . После ключевого слова Sub идёт имя процедуры, а в круглых скобках указывается список её пара­метров, например:

Sub MyProcedure(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 = Paraml+Param2
MyFunction = Sum
End Function

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

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

Вот простой пример синтаксиса vbscript для использования собственных процедур и функций:

Помимо процедур и функций, можно создавать собственные массивы (

В данном уроке речь пойдёт о функции Function … End Function - подпрограммы, которая возвращает определённое значение и о процедуре Sub … End Sub - подпрограмме, которая ничего не возвращает. Парой они могут оказаться просто жизненно необходимыми при решение некоторых задач в сценариях VBScript .

Функция Function … End Function.

Язык VBScript позволят создавать собственные функции и процедуры и в этом нам сейчас предстоит разобраться.

Функция (Function … End Function) может пригодиться нам когда нужно выполнить одно и то же действие (сценарий, по другому - выражение) несколько раз, но с разными данными. Вместо того, что бы по сто раз дублировать одно и то же выражение, можно записать его только один раз.

Вначале идёт ключевое слово Function , а после него идёт название функции, которое Вы придумываете сами. После её названия в круглых скобках, через запятую, указываются параметры функции. Далее уже идёт тело функции, которое закрывается ключевыми словами End Function . Давайте посмотрим пример:

"Урок VBScript №3 "file_1.vbs dim a, b Function fun_name(a, b) Dim rezult rezult = a+b fun_name = rezult "присваиваем значение функцие, которое она нам вернёт End Function MsgBox fun_name(5,110) MsgBox fun_name(15,16) MsgBox fun_name(25,15)

"Урок VBScript №3

"Функции (Function ... End Function) и процедуры (Sub ... End Sub)

"file_1.vbs

dim a , b

Function fun_name (a , b )

Dim rezult

rezult = a + b

fun_name = rezult "присваиваем значение функцие, которое она нам вернёт

End Function

MsgBox fun_name (5 , 110 )

MsgBox fun_name (15 , 16 )

MsgBox fun_name (25 , 15 )

На примере видно, что в функции можно объявлять свои переменные. Так же можно в теле самой функции, присвоить переменной значение которое она нам вернёт. Эта переменная имеет такое же название, что и функция. Это нужно для того что бы функция возвращала нам значения при её вызове с помощью MsgBox в конце примера. Если этого не надо, то функция вызывается так: fun_name 5,110 (без скобок) .

С этим вроде бы всё понятно. Теперь идём дальше.

Процедура Sub … End Sub.

Процедура Sub … End Sub можно использовать в тех же целях, что и функцию (Function … End Function), но с одним условием - она не возвращает значение. Всё происходит в теле самой процедуры.

Процедура объявляется ключевым словом Sub , далее идёт произвольное имя процедуры и в круглых скобках её значение. Закрывается процедура ключевыми словами End Sub . Давайте посмотрим на пример:

"Урок VBScript №3 "Функции (Function ... End Function) и процедуры (Sub ... End Sub) "file_2.vbs dim a, b Sub sub_name(a, b) Dim rezult rezult = a+b MsgBox rezult End Sub Call sub_name(5,110) Call sub_name(15,16) Call sub_name(25,15) sub_name 25,1

"Урок VBScript №3

"Функции (Function ... End Function) и процедуры (Sub ... End Sub)

"file_2.vbs

dim a , b

Sub sub_name (a , b )


Процедуры

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

Виды процедур


В VBScript существует два вида процедур: подпрограмма (Sub) и функция (Function). Подпрограмма (Sub) - это последовательность VBScript-операторов, обрамляемая операторами Sub и End Sub. Подпрограммы могут принимать параметры (константы, переменные или выражения, которые передаются при вызове процедуры), но не возвращают значений. Если подпрограмма не содержит параметров, то ее оператор должен включать пустой набор круглых скобок. Следующая подпрограмма использует две функции языка VBScript - InputBox и MsgBox. Она запрашивает у пользователя ввод температуры в градусах Фаренгейта, переводит ее в градусы Цельсия и отображает результат. Вычисление температуры происходит в функции Celsius.

Функция (Function) - это последовательность операторов VBScript, обрамляемая операторами Function и End Function. Она похожа на подпрограмму, но отличается от последней тем, что может возвращать некоторое значение. Функция может принимать параметры (константы, переменные или выражения, передаваемые при вызове). Если она не содержит параметров, то оператор Function должен включать пустой набор круглых скобок. Возвращаемый тип у Function - Variant.

В следующем примере функция Celsius переводит градусы Фаренгейта в градусы Цельсия. Когда вызывается функция из подпрограммы ConvertTemp, переменная, содержащая параметр-значение, передается в функцию. Результат вычисления возвращается в вызывающую процедуру и отображается в MsgBox.

Перед использованием процедур в своей программе вы должны их объявить. Их нужно всегда размещать в самом начале раздела вашей HTML-странички. Весь последующий текст должен также находиться в разделе . Операторы Function и Sub, подобно другим элементам языка VBScript, располагаются между парой тегов для правильного их распознавания браузером. Кроме того, теги комментария () окружают текст программы внутри тега , гарантируя, что сценарий не будет отображаться в браузерах, которые не поддерживают VBScript.

Любые данные передаются в ваши процедуры в виде параметров. При создании подпрограммы (или функции) после ее имени должны быть круглые скобки. Любые параметры внутри них отделяются запятыми. В следующем примере параметр fDegrees передает значения в функцию Celsius для преобразования:

Используйте функции вместо подпрограмм, если требуется возвратить некоторое значение.

Использование подпрограмм и функций


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

Чтобы вызвать одну процедуру из другой, необходимо написать имя первой со значениями требуемых параметров, каждый из которых должен отделяться от предыдущего запятой. Оператор Call не требуется. Но если вы все-таки используете его, то нужно заключить любые параметры в круглые скобки. Следующий пример показывает две возможности вызова процедуры MyProc. Один использует оператор Call, другой - нет. Оба выполняют одно и то же.

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

Процедура sub выполняет последовательность действий, но не возвращает никакого, значения, ассоциированного с ее именем. Она имеет следующий синтаксис:

sub имя_процедуры ([список-параметров])

операторы

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

Вызов процедуры sub осуществляется оператором call, после которого указывается имя процедуры и в круглых скобках параметры. Процедуру можно вызвать и простым указанием ее имени, но в этом случае передаваемые ей параметры задаются без скобок. Следующие два способа вызова процедуры эквивалентны:

call MyProc(firstarg, secondarg)

MyProc firstarg, secondarg

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

function имя_процедуры ([список-параметров])

операторы

имя_процедуры = значение

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

VBScript предоставляет два способа передачи параметров в процедуру:

По значению

Способ передачи параметров по ссылке, применяемый по умолчанию, передает фактический адрес переменной, используемой в качестве параметра. Это позволяет изменить содержимое соответствующего адреса памяти, а тем самым, и значение переменной.

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

6 Объекты6.1 JavaScript

На самом верхнем уровне иерархии находится объект window, представляющий окно браузера и являющийся “родителем” всех остальных объектов. Расположенные ниже в иерархии объекты могут иметь свои подчиненные объекты.

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

Каждая страница в добавление к объекту navigator обязательно имеет еще четыре объекта:

window – объект верхнего уровня, свойства которого применяются ко всему окну, в котором отображается документ.

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

location – свойства которого связаны с URL-адресом отображаемого документа.

history – представляет адреса ранее загружавшихся HTML-страниц.

Кроме указанных объектов страница может иметь дополнительные объекты, зависящие от ее содержимого, которые являются дочерними объектами объекта document. Если на страницы расположена форма, то все ее элементы являются дочерними объектами этой формы. Для задания точного имени объекта используется точечная нотация с полным указанием всей цепочки наследования объекта. Это возможно, так как объект верхнего уровня имеет свойство, значением которого является объект нижнего уровня. Ссылка на объект осуществляется по имени, заданному параметром NAME тэга HTML.

Фамилия:

Курс:

Для получения фамилии студента, введенного в первом поле ввода, в программе JavaScript следует использовать ссылку document.form1.studentName.value, а чтобы определить курс, на котором обучается студент, необходимо использовать ссылку document.form1.course.value.