Разработка INTRANET приложений

         

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


В VBScript существует два типа подпрограмм - процедуры и функции.

Процедура - это набор операторов VBScript, обрамленных операторами Sub и EndSub, которые выполняют какие-то действия. Процедура не возвращает никакого значения. Процедура может "захватывать" аргументы (константы, переменные или выражения). Если процедура не имеет аргументов, то выражение Sub должно содержать пустые круглые скобки. В примере, приведенном ниже, процедура ConvertTemp использует две встроенные функции VBScript - InputBox и MsgBox - для обмена с пользователем некоторой информацией.

Функция - это набор операторов VBScript, обрамленных операторами Function и EndFunction. Функция похожа на процедуру, но отличается тем, что может возвращать значение. Функция также как и процедура может "захватывать" аргументы. Функция всегда возвращает значение типа Variant. В примере функция Celsius пересчитывает температуру из градусов по Цельсию в градусы по Фаренгейту.

<SCRIPTLANGUAGE="VBScript"> SubConvertTemp() temp = InputBox("PleaseenterthetemperatureindegreesF.", 1) MsgBox "Thetemperatureis " & Celsius(temp) & " degreesC." EndSub FunctionCelsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 EndFunction </SCRIPT>

Процедуры и функции перед их использованием обязательно должны быть описаны в начале раздела HEADHTML-страницы. Весь последующий скрипт должен быть также в разделе HEAD. Кроме того, выражения Sub и Function как и все другие операторы VBScript должны находится в контейнере <SCRIPT>.

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

<SCRIPTLANGUAGE="VBScript"> FunctionCelsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 EndFunction </SCRIPT>

Аргументам можно присваивать любые имена в соответствии с соглашениями по именованию.

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

<SCRIPTLANGUAGE="VBScript"> Temp = Celsius(fDegrees) </SCRIPT>

или

<SCRIPTLANGUAGE="VBScript"> MsgBox "TheCelsiustemperatureis " & Celsius(fDegrees) & " degrees." </SCRIPT>

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

<SCRIPTLANGUAGE="VBScript"> CallMyProc(firstarg, secondarg) MyProcfirstarg, secondarg </SCRIPT>



Содержание раздела