On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Процедуры

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

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

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

<SCRIPT LANGUAGE="VBScript">
<!-
Sub ConvertTemp()
temp = InputBox("Please enter the temperature
          in degrees F.", 1)
MsgBox "The temperature is " &
Celsius(temp) & " degrees C."
End Sub
-></SCRIPT>

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

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

<SCRIPT LANGUAGE="VBScript">
<!-
 Sub ConvertTemp()
     temp = InputBox("Please enter the temperature in
            degrees F.", 1)
     MsgBox "The temperature is " & Celsius(temp) & "
            degrees C."
 End Sub

 Function Celsius(fDegrees)
     Celsius = (fDegrees - 32) * 5 / 9
 End Function
->
</SCRIPT>

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

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

<SCRIPT LANGUAGE="VBScript">
<!-
 Function Celsius(fDegrees)
    Celsius = (fDegrees - 32) * 5 / 9
 End Function
->
</SCRIPT>

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

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

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

<SCRIPT LANGUAGE="VBScript">
<!-
 Temp = Celsius(fDegrees)
->
</SCRIPT>

или

<SCRIPT LANGUAGE="VBScript">
<!-
 MsgBox "The Celsius temperature is " &
 Celsius(fDegrees) & " degrees."
->
</SCRIPT>

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

<SCRIPT LANGUAGE="VBScript">
<!-
 Call MyProc(firstarg, secondarg)
 MyProc firstarg, secondarg
->
</SCRIPT>

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



Литература по VBScript