VBScript – Обзор
VB Script – это виртуальный базовый сценарий, который образует подмножество Visual Basic для приложений (VBA). VBA – это продукт Microsoft, который включен не только в другие продукты Microsoft, такие как MS Project и MS Office, но также в сторонние инструменты, такие как AUTO CAD.
Особенности VBScript
-
VBScript – это легкий язык сценариев, который имеет молниеносный переводчик.
-
VBScript, по большей части, нечувствителен к регистру. Он имеет очень простой синтаксис, легкий для изучения и реализации.
-
В отличие от C ++ или Java, VBScript – это объектно-ориентированный язык сценариев, а не объектно-ориентированный язык программирования.
-
Он использует объектную модель компонентов (COM) для доступа к элементам среды, в которой он выполняется.
-
Успешное выполнение VBScript может произойти, только если он выполняется в среде хоста, такой как Internet Explorer (IE) , Internet Information Services (IIS) и Windows Scripting Host (WSH)
VBScript – это легкий язык сценариев, который имеет молниеносный переводчик.
VBScript, по большей части, нечувствителен к регистру. Он имеет очень простой синтаксис, легкий для изучения и реализации.
В отличие от C ++ или Java, VBScript – это объектно-ориентированный язык сценариев, а не объектно-ориентированный язык программирования.
Он использует объектную модель компонентов (COM) для доступа к элементам среды, в которой он выполняется.
Успешное выполнение VBScript может произойти, только если он выполняется в среде хоста, такой как Internet Explorer (IE) , Internet Information Services (IIS) и Windows Scripting Host (WSH)
VBscript – История версий и использование
VBScript был представлен Microsoft еще в 1996 году, и его первая версия была 1.0. Текущая стабильная версия VBScript – 5.8, которая доступна как часть IE8 или Windows 7. Области использования VBScript в изобилии и не ограничиваются приведенным ниже списком.
-
VBScript используется в качестве языка сценариев в одном из популярных инструментов тестирования автоматизации – Quick Test Professional, сокращенно QTP
-
Windows Scripting Host, который в основном используется системными администраторами Windows для автоматизации рабочего стола Windows.
-
Active Server Pages (ASP) , среда сценариев на стороне сервера для создания динамических веб-страниц, использующая VBScript или Java Script.
-
VBScript используется для сценариев на стороне клиента в Microsoft Internet Explorer.
-
Microsoft Outlook Forms обычно работает на VBScript; однако программирование на уровне приложений опирается на VBA (Outlook 2000 и более поздние версии).
VBScript используется в качестве языка сценариев в одном из популярных инструментов тестирования автоматизации – Quick Test Professional, сокращенно QTP
Windows Scripting Host, который в основном используется системными администраторами Windows для автоматизации рабочего стола Windows.
Active Server Pages (ASP) , среда сценариев на стороне сервера для создания динамических веб-страниц, использующая VBScript или Java Script.
VBScript используется для сценариев на стороне клиента в Microsoft Internet Explorer.
Microsoft Outlook Forms обычно работает на VBScript; однако программирование на уровне приложений опирается на VBA (Outlook 2000 и более поздние версии).
Недостатки
-
VBscript используется только браузерами IE. Другие браузеры, такие как Chrome, Firefox DONOT, поддерживают VBScript. Следовательно, JavaScript предпочтительнее VBScript.
-
VBScript имеет ограниченную поддержку командной строки.
-
Поскольку по умолчанию нет среды разработки, отладка затруднена.
VBscript используется только браузерами IE. Другие браузеры, такие как Chrome, Firefox DONOT, поддерживают VBScript. Следовательно, JavaScript предпочтительнее VBScript.
VBScript имеет ограниченную поддержку командной строки.
Поскольку по умолчанию нет среды разработки, отладка затруднена.
Где VBScript сегодня?
Текущая версия VBScript – 5.8, и с недавней разработкой .NET Framework компания Microsoft решила в будущем обеспечить поддержку VBScript в ASP.NET для веб-разработки. Следовательно, больше не будет новых версий механизма VBScript, но все исправления дефектов и проблемы безопасности решаются группой поддержки Microsoft. Однако механизм VBScript будет поставляться как часть всех Microsoft Windows и IIS по умолчанию.
VBScript – Синтаксис
Ваш первый VBScript
Давайте напишем VBScript для распечатки «Hello World».
<html> <body> <script language = "vbscript" type = "text/vbscript"> document.write("Hello World!") </script> </body> </html>
В приведенном выше примере мы вызвали функцию document.write , которая записывает строку в документ HTML. Эта функция может использоваться для написания текста, HTML или обоих. Таким образом, приведенный выше код будет отображать следующий результат –
Hello World!
Пробелы и разрывы строк
VBScript игнорирует пробелы, табуляции и новые строки, которые появляются в программах VBScript. Можно свободно использовать пробелы, табуляции и переводы строк в рамках программы, поэтому вы можете свободно форматировать и создавать отступы для своих программ аккуратно и последовательно, что делает код легким для чтения и понимания.
форматирование
VBScript основан на Microsoft Visual Basic. В отличие от JavaScript, терминаторы операторов, такие как точка с запятой, не используются для завершения определенного оператора.
Синтаксис одной строки
Двоеточие используется, когда две или более строки VBScript должны быть записаны в одну строку. Следовательно, в VBScript, двоеточия действуют как разделитель строк.
<script language = "vbscript" type = "text/vbscript"> var1 = 10 : var2 = 20 </script>
Многострочный синтаксис
Когда оператор в VBScript является длинным и если пользователь хочет разбить его на несколько строк, пользователь должен использовать подчеркивание «_». Это улучшает читабельность кода. В следующем примере показано, как работать с несколькими строками.
<script language = "vbscript" type = "text/vbscript"> var1 = 10 var2 = 20 Sum = var1 + var2 document.write("The Sum of two numbers"&_"var1 and var2 is " & Sum) </script>
Зарезервированные слова
В следующем списке показаны зарезервированные слова в VBScript. Эти зарезервированные слова НЕ ДОЛЖНЫ использоваться в качестве константы или переменной или любых других имен идентификаторов.
петля | LSet | мне |
модификация | новый | следующий |
Не | Ничего такого | Ноль |
На | вариант | Необязательный |
Или же | ParamArray | заповедник |
Частный | общественного | RaiseEvent |
ReDim | Rem | Продолжить |
RSet | Выбрать | Задавать |
Общий | не замужем | статический |
Стоп | Sub | затем |
к | Правда | Тип |
А также | Как | логический |
ByRef | Байт | ByVal |
Вызов | случай | Учебный класс |
Const | валюта | отлаживать |
тусклый | Делать | двойной |
каждый | еще | ElseIf |
пустой | Конец | EndIf |
Enum | Eqv | Событие |
Выход | Ложь | За |
функция | Получить | Идти к |
Если | чертенок | инвентарь |
В | целое число | Является |
Позволять | подобно | Долго |
Тип | До тех пор | Вариант |
венед | В то время как | С |
Xor | Eval | казнить |
Msgbox | стирать | ExecuteGlobal |
Вариант Явный | Перемешайте | SendKeys |
Чувствительность к регистру
VBScript – это язык без учета регистра . Это означает, что ключевые слова языка, переменные, имена функций и любые другие идентификаторы НЕ ДОЛЖНЫ печататься с постоянной заглавной буквой. Таким образом, идентификаторы int_counter, INT_Counter и INT_COUNTER имеют одинаковое значение в VBScript.
Комментарии в VBScript
Комментарии используются для документирования логики программы и пользовательской информации, с которой другие программисты могут беспрепятственно работать над тем же кодом в будущем. Он может включать в себя информацию, такую как разработанную, модифицированную, и он также может включать встроенную логику. Комментарии игнорируются интерпретатором при исполнении. Комментарии в VBScript обозначаются двумя способами.
1. Любое утверждение, начинающееся с одинарной кавычки (‘), рассматривается как комментарий.
Ниже приведен пример –
<script language = "vbscript" type = "text/vbscript"> <!— ' This Script is invoked after successful login ' Written by : TutorialsPoint ' Return Value : True / False //- > </script>
2. Любое утверждение, начинающееся с ключевого слова «REM».
Ниже приведен пример –
<script language = "vbscript" type = "text/vbscript"> <!— REM This Script is written to Validate the Entered Input REM Modified by : Tutorials point/user2 //- > </script>
Включение VBScript в браузерах
Не все современные браузеры поддерживают VBScript. VBScript поддерживается только Internet Explorer от Microsoft, в то время как другие браузеры (Firefox и Chrome) поддерживают только JavaScript. Следовательно, разработчики обычно предпочитают JavaScript, а не VBScript.
Хотя Internet Explorer (IE) поддерживает VBScript, вам может потребоваться включить или отключить эту функцию вручную. Из этого туториала вы узнаете, как включить и отключить поддержку VBScript в Internet Explorer.
VBScript в Internet Explorer
Вот простые шаги для включения или выключения VBScript в вашем Internet Explorer –
-
В меню «Инструменты» выберите «Свойства обозревателя».
-
Выберите вкладку «Безопасность» в диалоговом окне.
-
Нажмите кнопку «Пользовательский уровень»
-
Прокрутите вниз, пока не найдете вариант сценариев
-
Установите флажок «Включить» в разделе «Активные сценарии».
-
Наконец нажмите ОК и выйдите
В меню «Инструменты» выберите «Свойства обозревателя».
Выберите вкладку «Безопасность» в диалоговом окне.
Нажмите кнопку «Пользовательский уровень»
Прокрутите вниз, пока не найдете вариант сценариев
Установите флажок «Включить» в разделе «Активные сценарии».
Наконец нажмите ОК и выйдите
Чтобы отключить поддержку VBScript в Internet Explorer, необходимо выбрать переключатель « Отключить » в разделе « Активные сценарии» .
VBScript – Места размещения
Размещение VBScript в файле HTML
Существует гибкость, позволяющая включать код VBScript в любом месте HTML-документа. Но наиболее предпочтительный способ включить VBScript в ваш HTML-файл заключается в следующем:
-
Скрипт в разделе <head> … </ head>.
-
Скрипт в разделе <body> … </ body>.
-
Скрипт в разделах <body> … </ body> и <head> … </ head>.
-
Сценарий во внешнем файле, а затем включить в раздел <head> … </ head>.
Скрипт в разделе <head> … </ head>.
Скрипт в разделе <body> … </ body>.
Скрипт в разделах <body> … </ body> и <head> … </ head>.
Сценарий во внешнем файле, а затем включить в раздел <head> … </ head>.
В следующем разделе мы увидим, как мы можем использовать VBScript различными способами:
VBScript в разделе <head> … </ head>
Если вы хотите, чтобы скрипт запускался на каком-то событии, например, когда пользователь щелкает где-то, вы поместите этот скрипт в заголовок следующим образом:
<html> <head> <script type = "text/Vbscript"> <!-- Function sayHello() Msgbox("Hello World") End Function //--> </script> </head> <body> <input type = "button" onclick = "sayHello()" value = "Say Hello" /> </body> </html>
Будет выдан следующий результат – кнопка с именем SayHello. При нажатии на кнопку, окно сообщения отображается пользователю с сообщением «Hello World».
VBScript в разделе <body> … </ body>
Если вам нужен сценарий для запуска при загрузке страницы, чтобы сценарий генерировал содержимое страницы, сценарий помещается в часть <body> документа. В этом случае у вас не было бы никакой функции, определенной с использованием VBScript –
<html> <head> </head> <body> <script type = "text/vbscript"> <!-- document.write("Hello World") //--> </script> <p>This is web page body </p> </body> </html>
Это даст следующий результат –
Hello World This is web page body
VBScript в разделах <body> и <head>
Вы можете поместить свой код VBScript в разделы <head> и <body> следующим образом:
<html> <head> <script type = "text/vbscript"> <!-- Function sayHello() msgbox("Hello World") End Function //--> </script> </head> <body> <script type = "text/vbscript"> <!-- document.write("Hello World") //--> </script> <input type = "button" onclick = "sayHello()" value = "Say Hello" /> </body> </html>
Будет получен следующий результат – сообщение Hello World с кнопкой «Say Hello». После нажатия на кнопку пользователю отображается окно с сообщением «Hello World».
Hello World
VBScript во внешнем файле
Когда вы начнете более интенсивно работать с VBScript, вы, вероятно, обнаружите случаи, когда вы повторно используете идентичный код VBScript на нескольких страницах сайта. Вы не должны поддерживать одинаковый код в нескольких файлах HTML.
Тег script предоставляет механизм, позволяющий хранить VBScript во внешнем файле, а затем включать его в файлы HTML. Вот пример, показывающий, как вы можете включить внешний файл VBScript в свой HTML-код, используя тег script и его атрибут src:
<html> <head> <script type = "text/vbscript" src = "filename.vbs" ></script> </head> <body> ....... </body> </html>
Чтобы использовать VBScript из внешнего источника файлов, вам нужно написать весь исходный код VBScript в простом текстовом файле с расширением «.vbs», а затем включить этот файл, как показано выше. Например, вы можете сохранить следующее содержимое в файле filename.vbs, а затем использовать функцию sayHello в своем HTML-файле после включения файла filename.vbs.
Function sayHello() Msgbox "Hello World" End Function
Размещение VBScript в QTP
VBScript помещается в инструмент QTP (Quick Test Professional), но он НЕ заключен в теги HTML. Файл сценария сохраняется с расширением .vbs и выполняется механизмом выполнения Quick Test Professional.
VBScript – переменные
Переменные VBScript
Переменная – это именованная ячейка памяти, используемая для хранения значения, которое можно изменить во время выполнения скрипта. VBScript имеет только ОДИН фундаментальный тип данных, Variant .
Правила объявления переменных –
-
Имя переменной должно начинаться с алфавита.
-
Имена переменных не могут превышать 255 символов.
-
Переменные НЕ должны содержать точку (.)
-
Имена переменных должны быть уникальными в объявленном контексте.
Имя переменной должно начинаться с алфавита.
Имена переменных не могут превышать 255 символов.
Переменные НЕ должны содержать точку (.)
Имена переменных должны быть уникальными в объявленном контексте.
Объявление переменных
Переменные объявляются с использованием ключевого слова «dim». Поскольку существует только ОДИН фундаментальный тип данных, все объявленные переменные являются вариантами по умолчанию. Следовательно, пользователь НЕ ДОЛЖЕН упоминать тип данных во время объявления.
Пример 1. В этом примере IntValue может использоваться как строка, целое число или даже массив.
Dim Var
Пример 2 – Два или более объявлений разделяются запятой (,)
Dim Variable1,Variable2
Присвоение значений переменным
Значения присваиваются аналогично алгебраическому выражению. Имя переменной в левой части сопровождается символом равенства (=), а затем ее значением в правой части.
правила
-
Числовые значения должны быть объявлены без двойных кавычек.
-
Значения String должны быть заключены в двойные кавычки (“)
-
Переменные даты и времени должны быть заключены в хеш-символ (#)
Числовые значения должны быть объявлены без двойных кавычек.
Значения String должны быть заключены в двойные кавычки (“)
Переменные даты и времени должны быть заключены в хеш-символ (#)
Примеры
' Below Example, The value 25 is assigned to the variable. Value1 = 25 ' A String Value ‘VBScript’ is assigned to the variable StrValue. StrValue = “VBScript” ' The date 01/01/2020 is assigned to the variable DToday. Date1 = #01/01/2020# ' A Specific Time Stamp is assigned to a variable in the below example. Time1 = #12:30:44 PM#
Область действия переменных
Переменные могут быть объявлены с помощью следующих операторов, которые определяют область действия переменной. Область действия переменной играет решающую роль при использовании внутри процедуры или классов.
- тусклый
- общественного
- Частный
тусклый
Переменные, объявленные с использованием ключевого слова «Dim» на уровне процедуры, доступны только в рамках одной процедуры. Переменные, объявленные с использованием ключевого слова «Dim» на уровне сценария, доступны для всех процедур одного и того же сценария.
Пример. В приведенном ниже примере значения Var1 и Var2 объявляются на уровне скрипта, а Var3 объявляется на уровне процедуры.
Примечание. Цель этой главы – понять переменные. Функции будут подробно рассмотрены в следующих главах.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim Var1 Dim Var2 Call add() Function add() Var1 = 10 Var2 = 15 Dim Var3 Var3 = Var1 + Var2 Msgbox Var3 'Displays 25, the sum of two values. End Function Msgbox Var1 ' Displays 10 as Var1 is declared at Script level Msgbox Var2 ' Displays 15 as Var2 is declared at Script level Msgbox Var3 ' Var3 has No Scope outside the procedure. Prints Empty </script> </body> </html>
общественного
Переменные, объявленные с использованием «открытого» ключевого слова, доступны для всех процедур во всех связанных сценариях. При объявлении переменной типа «public» ключевое слово Dim заменяется на «Public».
Пример. В следующем примере Var1 и Var2 доступны на уровне сценария, а Var3 доступен для всех связанных сценариев и процедур, поскольку он объявлен как Public.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim Var1 Dim Var2 Public Var3 Call add() Function add() Var1 = 10 Var2 = 15 Var3 = Var1+Var2 Msgbox Var3 'Displays 25, the sum of two values. End Function Msgbox Var1 ' Displays 10 as Var1 is declared at Script level Msgbox Var2 ' Displays 15 as Var2 is declared at Script level Msgbox Var3 ' Displays 25 as Var3 is declared as Public </script> </body> </html>
Частный
Переменные, которые объявлены как «Частные», имеют область действия только в том сценарии, в котором они объявлены. При объявлении переменной типа «Private» ключевое слово Dim заменяется на «Private».
Пример. В следующем примере Var1 и Var2 доступны на уровне сценария. Var3 объявлен как Private и доступен только для этого конкретного скрипта. Использование «Частных» переменных более выражено в пределах класса.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim Var1 Dim Var2 Private Var3 Call add() Function add() Var1 = 10 Var2 = 15 Var3 = Var1+Var2 Msgbox Var3 'Displays the sum of two values. End Function Msgbox Var1 ' Displays 10 as Var1 is declared at Script level Msgbox Var2 ' Displays 15 as Var2 is declared at Script level Msgbox Var3 ' Displays 25 but Var3 is available only for this script. </script> </body> </html>
VBScript – константы
Константа – это именованная область памяти, используемая для хранения значения, которое НЕ МОЖЕТ быть изменено во время выполнения скрипта. Если пользователь пытается изменить значение константы, выполнение скрипта заканчивается ошибкой. Константы объявляются так же, как и переменные.
Объявление констант
Синтаксис
[Public | Private] Const Constant_Name = Value
Константа может иметь тип Public или Private. Использование Public или Private является необязательным. Публичные константы доступны для всех сценариев и процедур, в то время как частные константы доступны в рамках процедуры или класса. Можно назначить любое значение, такое как число, строка или дата, объявленной константе.
Пример 1
В этом примере значение pi равно 3,4, и оно отображает площадь круга в окне сообщения.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim intRadius intRadius = 20 const pi = 3.14 Area = pi*intRadius*intRadius Msgbox Area </script> </body> </html>
Пример 2
В приведенном ниже примере показано, как назначить значение String и Date константе.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Const myString = "VBScript" Const myDate = #01/01/2050# Msgbox myString Msgbox myDate </script> </body> </html>
Пример 3
В приведенном ниже примере пользователь пытается изменить значение константы; следовательно, это закончится с ошибкой выполнения.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim intRadius intRadius = 20 const pi = 3.14 pi = pi*pi 'pi VALUE CANNOT BE CHANGED.THROWS ERROR' Area = pi*intRadius*intRadius Msgbox Area </script> </body> </html>
VBScript – Операторы
Кто такой оператор?
Давайте возьмем выражение 4 + 5, равное 9 . Здесь 4 и 5 называются операндами, а + называется оператором . Язык VBScript поддерживает следующие типы операторов –
- Арифметические Операторы
- Операторы сравнения
- Логические (или реляционные) операторы
- Операторы конкатенации
Арифметические операторы
VBScript поддерживает следующие арифметические операторы –
Предположим, что переменная A содержит 5, а переменная B содержит 10, тогда –
Показать примеры
оператор | Описание | пример |
---|---|---|
+ | Добавляет два операнда | А + Б даст 15 |
– | Вычитает второй операнд из первого | А – Б даст -5 |
* | Умножьте оба операнда | А * Б даст 50 |
/ | Разделите числитель на денумератор | Б / у даст 2 |
% | Оператор модуля и остаток от целочисленного деления | B MOD A даст 0 |
^ | Оператор возведения в степень | B ^ A даст 100000 |
Чтобы лучше понять этих операторов, попробуйте сами .
Операторы сравнения
В языке VBScript поддерживаются следующие операторы сравнения:
Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда –
Показать примеры
оператор | Описание | пример |
---|---|---|
знак равно | Проверяет, равны ли значения двух операндов или нет, если да, тогда условие становится истинным. | (A == B) является ложным. |
<> | Проверяет, равны ли значения двух операндов или нет, если значения не равны, тогда условие становится истинным. | (A <> B) верно. |
> | Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, тогда условие становится истинным. | (A> B) является ложным. |
< | Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, тогда условие становится истинным. | (A <B) верно. |
> = | Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, тогда условие становится истинным. | (A> = B) является ложным. |
<= | Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, тогда условие становится истинным. | (A <= B) верно. |
Чтобы лучше понять этих операторов, попробуйте сами .
Логические операторы
В языке VBScript поддерживаются следующие логические операторы:
Предположим, что переменная A содержит 10, а переменная B содержит 0, тогда –
Показать примеры
оператор | Описание | пример |
---|---|---|
А ТАКЖЕ | Называется логический оператор И. Если оба условия истинны, то выражение становится истинным. | a <> 0 И b <> 0 – Ложь. |
ИЛИ ЖЕ | Вызывается логическим оператором ИЛИ. Если любое из двух условий является Истиной, тогда условие становится Истиной. | a <> 0 ИЛИ b <> 0 верно. |
НЕ | Вызывается логическим оператором НЕ. Он меняет логическое состояние своего операнда. Если условие имеет значение True, то оператор Logical NOT сделает его False. | НЕ (a <> 0 ИЛИ b <> 0) ложно. |
XOR | Называется логическим исключением. Это комбинация оператора NOT и OR. Если одно и только одно из выражений имеет значение True, результатом будет True. | (a <> 0 XOR b <> 0) верно. |
Чтобы лучше понять этих операторов, попробуйте сами .
Операторы конкатенации
Существуют следующие операторы конкатенации, поддерживаемые языком VBScript:
Предположим, что переменная A содержит 5, а переменная B содержит 10, тогда –
Показать примеры
оператор | Описание | пример |
---|---|---|
+ | Добавляет два значения, так как значения переменных являются числовыми | А + Б даст 15 |
& | Объединяет два значения | А & Б даст 510 |
Допустим, переменная A = “Microsoft” и переменная B = “VBScript”, тогда –
оператор | Описание | пример |
---|---|---|
+ | Объединяет два значения | A + B даст MicrosoftVBScript |
& | Объединяет два значения | A & B предоставит MicrosoftVBScript |
Примечание. Операторы конкатенации могут использоваться для чисел и строк. Выходные данные зависят от контекста, если переменные содержат числовое значение или строковое значение.
Чтобы лучше понять этих операторов, попробуйте сами .
VBScript – принятие решений
Принятие решений позволяет программистам контролировать ход выполнения скрипта или одного из его разделов. Выполнение регулируется одним или несколькими условными утверждениями.
Ниже приводится общая форма типичной структуры принятия решений, встречающейся в большинстве языков программирования.
VBScript предоставляет следующие типы решений для принятия решений.
утверждение | Описание |
---|---|
если заявление | Оператор if состоит из логического выражения, за которым следует один или несколько операторов. |
если .. еще заявление | Оператор if else состоит из логического выражения, за которым следует один или несколько операторов. Если условие истинно, выполняются операторы согласно операторам If . Если условие ложно, то остальная часть скрипта выполняется |
если … еще одно заявление | Оператор if, за которым следует одно или несколько выражений ElseIf , которое состоит из логических выражений, а затем следует необязательный оператор else, который выполняется, когда все условие становится ложным. |
вложенные операторы if | Оператор if или elseif внутри другого оператора if или elseif . |
заявление о переключении | Оператор switch позволяет проверять переменную на соответствие списку значений. |
VBScript – циклы
Может возникнуть ситуация, когда вам нужно выполнить блок кода несколько раз. В общем случае операторы выполняются последовательно: первый оператор в функции выполняется первым, затем второй и так далее.
Языки программирования предоставляют различные структуры управления, которые позволяют более сложные пути выполнения. Оператор цикла позволяет нам выполнять оператор или группу операторов несколько раз, и далее следует общее из оператора цикла в VBScript.
VBScript предоставляет следующие типы циклов для обработки требований циклов. Нажмите на следующие ссылки, чтобы проверить их детали.
Тип петли | Описание |
---|---|
для цикла | Выполняет последовательность операторов несколько раз и сокращает код, который управляет переменной цикла. |
для каждого цикла | Он выполняется, если в группе есть хотя бы один элемент, и повторяется для каждого элемента в группе. |
пока .. венд петля | Он проверяет условие перед выполнением тела цикла. |
сделай .. пока петли | Операторы do..While будут выполняться до тех пор, пока условие будет True. (Т. Е.) Цикл должен повторяться до тех пор, пока условие не станет False. |
делать .. до петель | Операторы do..Until будут выполняться до тех пор, пока условие имеет значение False (т. Е.) Цикл должен повторяться до тех пор, пока условие не станет True. |
Заявления о контроле цикла
Операторы управления циклом изменяют выполнение от его нормальной последовательности. Когда выполнение выходит из области видимости, все остальные операторы в цикле НЕ выполняются.
VBScript поддерживает следующие операторы управления. Нажмите на следующие ссылки, чтобы проверить их детали.
Контрольное заявление | Описание |
---|---|
Выход для выписки | Завершает оператор цикла For и передает выполнение в оператор, следующий сразу за циклом |
Выйти Do заявление | Завершает оператор Do While и переносит выполнение в оператор сразу после цикла |
VBScript – События
Что такое событие?
Взаимодействие VBScript с HTML обрабатывается посредством событий, которые происходят, когда пользователь или браузер манипулируют страницей. Когда страница загружается, это событие. Когда пользователь нажимает кнопку, этот щелчок также является событием. Другие примеры событий включают нажатие любой клавиши, закрытие окна, изменение размера окна и т. Д. Разработчики могут использовать эти события для выполнения закодированных ответов VBScript, которые заставляют кнопки закрывать окна, сообщения, отображаемые пользователям, данные для проверки и практически любые возможный ответ другого типа.
События являются частью объектной модели документа (DOM), и каждый элемент HTML имеет определенный набор событий, которые могут запускать код VBScript. Пожалуйста, пройдите этот небольшой учебник для лучшего понимания HTML Event Reference . Здесь мы увидим несколько примеров, чтобы понять связь между Event и VBScript.
Тип события onclick
Это наиболее часто используемый тип события, которое происходит, когда пользователь нажимает левую кнопку мыши. Вы можете выставить свою проверку, предупреждение и т. Д. Этому типу события.
пример
<html> <head> <script language = "vbscript" type = "text/vbscript"> Function sayHello() msgbox "Hello World" End Function </script> </head> <body> <input type = "button" onclick = "sayHello()" value = "Say Hello"/> </body> </html>
Это даст следующий результат, и когда вы нажмете кнопку Hello, произойдет событие onclick, которое вызовет функцию sayHello ().
тип события отправки
Еще один наиболее важный тип события – onsubmit . Это событие происходит, когда вы пытаетесь отправить форму. Таким образом, вы можете поставить проверку формы для этого типа события. Форма отправляется нажатием кнопки «Отправить», появляется окно сообщения.
Форма отправляется нажатием кнопки «Отправить», появляется окно сообщения.
пример
<html> <head> </head> <body> <script language = "VBScript"> Function fnSubmit() Msgbox("Hello Tutorialspoint.Com") End Function </script> <form action = "/cgi-bin/test.cgi" method = "post" name = "form1" onSubmit = "fnSubmit()"> <input name = "txt1" type = "text"><br> <input name = "btnButton1" type = "submit" value="Submit"> </form> </body> </html>
наверху и наверху
Эти два типа событий помогут вам создавать приятные эффекты с изображениями или даже с текстом. Событие onmouseover наступает, когда вы наводите курсор мыши на какой-либо элемент, а событие onmouseout возникает, когда вы убираете мышь из этого элемента.
пример
<html> <head> </head> <body> <script language = "VBScript"> Function AlertMsg Msgbox("ALERT !") End Function Function onmourse_over() Msgbox("Onmouse Over") End Function Sub txt2_OnMouseOut() Msgbox("Onmouse Out !!!") End Sub Sub btnButton_OnMouseOut() Msgbox("onmouse out on Button !") End Sub </script> <form action = "page.cgi" method = "post" name = "form1"> <input name = "txt1" type = "text" OnMouseOut = "AlertMsg()"><br> <input name = "txt2" type = "text" OnMouseOver = "onmourse_over()"> <br><input name = "btnButton" type = "button" value = "Submit"> </form> </body> </html>
Результат будет получен при наведении курсора мыши на текстовое поле, а также при перемещении фокуса от текстового поля и кнопки.
Стандарты HTML 4
Стандартные события HTML 4 перечислены здесь для вашей справки. Здесь скрипт указывает на функцию VBScript, которая должна быть выполнена для этого события.
Событие | Значение | Описание |
---|---|---|
по изменению | скрипт | Скрипт запускается при изменении элемента |
onsubmit | скрипт | Скрипт запускается при отправке формы |
OnReset | скрипт | Скрипт запускается при сбросе формы |
ONBLUR | скрипт | Скрипт запускается, когда элемент теряет фокус |
OnFocus | скрипт | Скрипт запускается, когда элемент получает фокус |
OnKeyDown | скрипт | Скрипт запускается при нажатии клавиши |
OnKeyPress | скрипт | Скрипт запускается при нажатии и отпускании клавиши |
OnKeyUp | скрипт | Скрипт запускается при отпускании ключа |
по щелчку | скрипт | Скрипт запускается при щелчке мышью |
ondblclick | скрипт | Скрипт запускается при двойном щелчке мышью |
OnMouseDown | скрипт | Скрипт запускается при нажатии кнопки мыши |
OnMouseMove | скрипт | Скрипт запускается при перемещении указателя мыши |
onmouseout | скрипт | Скрипт запускается, когда указатель мыши выходит за пределы элемента |
при наведении мыши | скрипт | Скрипт запускается, когда указатель мыши перемещается над элементом |
OnMouseUp | скрипт | Скрипт запускается при отпускании кнопки мыши |
VBScript и файлы cookie
Что такое куки?
Веб-браузеры и серверы используют протокол HTTP для связи, а HTTP – это протокол без сохранения состояния. Но для коммерческого веб-сайта требуется хранить информацию о сеансе на разных страницах. Например, регистрация одного пользователя заканчивается после заполнения множества страниц. Но как сохранить информацию о сеансе пользователя на всех веб-страницах. Во многих ситуациях использование файлов cookie является наиболее эффективным способом запоминания и отслеживания предпочтений, покупок, комиссий и другой информации, необходимой для лучшего восприятия посетителей или статистики сайта.
Как это устроено?
Ваш сервер отправляет некоторые данные в браузер посетителя в виде файла cookie. Браузер может принять куки. Если это так, он сохраняется в виде простой текстовой записи на жестком диске посетителя. Теперь, когда посетитель заходит на другую страницу вашего сайта, браузер отправляет тот же файл cookie на сервер для поиска. После получения ваш сервер знает / запоминает то, что было сохранено ранее. Cookies – это запись данных в виде простого текста из 5 полей переменной длины –
-
Истекает – дата окончания срока действия куки. Если это поле пустое, срок действия файла cookie истечет, когда посетитель выйдет из браузера.
-
Домен – доменное имя вашего сайта.
-
Путь – путь к каталогу или веб-странице, на которой установлен файл cookie. Это может быть пустым, если вы хотите получить куки из любого каталога или страницы.
-
Безопасный – если в этом поле содержится слово «безопасный», то файл cookie может быть получен только с безопасного сервера. Если это поле пустое, такого ограничения не существует.
-
Имя = значение – файлы cookie устанавливаются и извлекаются в форме пар ключ-значение.
Истекает – дата окончания срока действия куки. Если это поле пустое, срок действия файла cookie истечет, когда посетитель выйдет из браузера.
Домен – доменное имя вашего сайта.
Путь – путь к каталогу или веб-странице, на которой установлен файл cookie. Это может быть пустым, если вы хотите получить куки из любого каталога или страницы.
Безопасный – если в этом поле содержится слово «безопасный», то файл cookie может быть получен только с безопасного сервера. Если это поле пустое, такого ограничения не существует.
Имя = значение – файлы cookie устанавливаются и извлекаются в форме пар ключ-значение.
Файлы cookie изначально предназначались для программирования CGI, и данные cookie автоматически передаются между веб-браузером и веб-сервером, поэтому сценарии CGI на сервере могут считывать и записывать значения файлов cookie, которые хранятся на клиенте.
VBScript также может управлять файлами cookie, используя свойство cookie объекта Document . VBScript может читать, создавать, изменять и удалять файлы cookie или файлы cookie, которые применяются к текущей веб-странице.
Хранение куки
Самый простой способ создать cookie – это присвоить строковое значение объекту document.cookie , который выглядит следующим образом:
Синтаксис
document.cookie = "key1 = value1;key2 = value2;expires = date"
Здесь атрибут expires необязателен. Если вы предоставите этому атрибуту правильную дату или время, то срок действия файла cookie истечет в заданную дату или время, и после этого значение файлов cookie будет недоступно.
пример
Ниже приведен пример установки имени клиента во входном cookie.
<html> <head> <script type = "text/vbscript"> Function WriteCookie If document.myform.customer.value = "" Then msgbox "Enter some value!" Else cookievalue = (document.myform.customer.value) document.cookie = "name = " + cookievalue msgbox "Setting Cookies : " & "name = " & cookievalue End If End Function </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/> </form> </body> </html>
Это даст следующий результат. Теперь введите что-то в текстовое поле и нажмите кнопку «Установить cookie», чтобы установить куки.
Теперь в вашей системе есть файл cookie с именем name . Вы можете установить несколько файлов cookie, используя несколько пар ключ = значение, разделенных запятой. Вы узнаете, как прочитать этот файл cookie в следующем разделе.
Чтение файлов cookie
Чтение cookie-файла так же просто, как и его запись, потому что значением объекта document.cookie является cookie-файл. Таким образом, вы можете использовать эту строку всякий раз, когда вы хотите получить доступ к cookie. Строка document.cookie будет содержать список пар имя = значение, разделенных точками с запятой, где имя - это имя файла cookie, а значение - его строковое значение. Вы можете использовать функцию split () для разбивки строки на ключ и значения следующим образом:
пример
Ниже приведен пример установки файлов cookie в предыдущем разделе.
<html> <head> <script type = "text/vbscript"> Function ReadCookie allcookies = document.cookie msgbox "All Cookies : " + allcookies cookiearray = split(allcookies,";") For i = 0 to ubound(cookiearray) Name = Split(cookiearray(i),"=") Msgbox "Key is : " + Name(0) + " and Value is : " + Name(1) Next End Function </script> </head> <body> <form name = "myform" action = ""> <input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/> </form> </body> </html>Примечание. Здесь UBound - это метод класса Array , который возвращает длину массива. Мы обсудим Массивы в отдельной главе; до этого времени, пожалуйста, попробуйте переварить это.
Это даст следующий результат. Теперь нажмите кнопку «Получить куки», чтобы увидеть куки, которые вы установили в предыдущем разделе.
Примечание. Возможно, на вашем компьютере уже установлены другие файлы cookie. Итак, приведенный выше код покажет вам все файлы cookie, установленные на вашем компьютере.
Установка даты истечения срока действия файлов cookie
Вы можете продлить срок действия файла cookie за пределы текущего сеанса браузера, установив дату окончания срока действия и сохранив дату окончания срока действия в файле cookie. Это можно сделать, установив для атрибута expires дату и время.
пример
В следующем примере показано, как установить дату истечения срока действия файла cookie через 1 месяц.
<html> <head> <script type = "text/vbscript"> Function WriteCookie() x = now() y = dateadd("m",1,now()) ' Making it to expire next cookievalue = document.myform.customer.value document.cookie = "name = " & cookievalue document.cookie = "expires = " & y msgbox("Setting Cookies : " & "name=" & cookievalue ) End Function </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/> </form> </body> </html>Удаление Cookie
Иногда вам может понадобиться удалить cookie, чтобы при последующих попытках чтения cookie ничего не возвращалось. Для этого вам просто нужно установить дату истечения срока в прошлом.
пример
В следующем примере показано, как удалить cookie, установив срок его действия 1 месяц в прошлом.
<html> <head> <script type = "text/vbscript"> Function WriteCookie() x = now() x = now() a = Month(x)-1 b = day(x) c = year(x) d = DateSerial(c,a,b) e = hour(x) msgbox e f = minute(x) msgbox f d = cdate(d & " " & e & ":" & f) msgbox d cookievalue = document.myform.customer.value document.cookie = "name = " & cookievalue document.cookie = "expires = " & d msgbox("Setting Cookies : " & "name=" & cookievalue ) End Function </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/> </form> </body> </html>VBScript - номера
Числовые функции помогают разработчикам эффективно обрабатывать числа, а также конвертировать их подтипы. Это также помогает им использовать встроенные математические функции, связанные с VBScript.
Функции преобразования чисел
Числовые функции помогают нам преобразовать данное число из одного подтипа данных в другой подтип данных.
Показать примеры
Sr.No | Описание функции |
---|---|
1 |
CDbl Функция, которая преобразует данное число любого варианта подтипа в удвоение |
2 |
CInt Функция, которая преобразует данное число любого варианта подтипа в целое число |
3 |
CLng Функция, которая преобразует данное число любого варианта подтипа в Long |
4 |
CSng Функция, которая преобразует данное число любого варианта подтипа в Single |
5 |
наговор Функция, которая преобразует заданное число любого варианта подтипа в шестнадцатеричное |
CDbl
Функция, которая преобразует данное число любого варианта подтипа в удвоение
CInt
Функция, которая преобразует данное число любого варианта подтипа в целое число
CLng
Функция, которая преобразует данное число любого варианта подтипа в Long
CSng
Функция, которая преобразует данное число любого варианта подтипа в Single
наговор
Функция, которая преобразует заданное число любого варианта подтипа в шестнадцатеричное
Функции форматирования чисел
Функции форматирования чисел помогают разработчикам выразить данное число в желаемом формате.
Показать примеры
Sr.No | Описание функции |
---|---|
1 |
FormatNumber Функция, которая возвращает выражение в формате числа |
2 |
FormatPercent Функция, которая будет возвращать выражение, отформатированное в процентах |
FormatNumber
Функция, которая возвращает выражение в формате числа
FormatPercent
Функция, которая будет возвращать выражение, отформатированное в процентах
Математические функции
Математические функции помогают нам оценить математические и тригонометрические функции заданного входного числа.
Показать примеры
Sr.No | Описание функции |
---|---|
1 |
Int Функция, которая возвращает целую часть заданного числа |
2 |
исправлять Функция, которая возвращает целую часть заданного числа |
3 |
Журнал Функция, которая возвращает натуральный логарифм заданного числа. Отрицательные числа запрещены |
4 |
октябрь Функция, которая возвращает октальное значение заданного процента |
5 |
наговор Функция, которая возвращает шестнадцатеричное значение данного числа |
6 |
Rnd Функция, которая возвращает случайное число от 0 до 1 |
7 |
Sgn Функция, которая возвращает число, соответствующее знаку указанного числа |
8 |
Sqr Функция, которая возвращает квадратный корень из данного числа. Отрицательные числа запрещены |
9 |
Abs Функция, которая возвращает абсолютное значение заданного числа |
10 |
Exp Функция, которая возвращает значение е, возведенное в указанное число |
11 |
грешить Функция, которая возвращает значение синуса данного числа |
12 |
Cos Функция, которая возвращает значение косинуса данного числа |
13 |
загар Функция, которая возвращает значение tan заданного числа |
Int
Функция, которая возвращает целую часть заданного числа
исправлять
Функция, которая возвращает целую часть заданного числа
Журнал
Функция, которая возвращает натуральный логарифм заданного числа. Отрицательные числа запрещены
октябрь
Функция, которая возвращает октальное значение заданного процента
наговор
Функция, которая возвращает шестнадцатеричное значение данного числа
Rnd
Функция, которая возвращает случайное число от 0 до 1
Sgn
Функция, которая возвращает число, соответствующее знаку указанного числа
Sqr
Функция, которая возвращает квадратный корень из данного числа. Отрицательные числа запрещены
Abs
Функция, которая возвращает абсолютное значение заданного числа
Exp
Функция, которая возвращает значение е, возведенное в указанное число
грешить
Функция, которая возвращает значение синуса данного числа
Cos
Функция, которая возвращает значение косинуса данного числа
загар
Функция, которая возвращает значение tan заданного числа
VBScript - Строки
Строки - это последовательность символов, которая может состоять из букв или цифр, специальных символов или всех из них. Переменная называется строкой, если она заключена в двойные кавычки "".
Синтаксис
variablename = "string"
Примеры
str1 = "string" ' Only Alphabets str2 = "132.45" ' Only Numbers str3 = "!@#$;*" ' Only Special Characters Str4 = "Asc23@#" ' Has all the above
Строковые функции
Существуют предопределенные функции VBScript String, которые помогают разработчикам очень эффективно работать со строками. Ниже приведены методы String, которые поддерживаются в VBScript. Пожалуйста, нажмите на каждый из методов, чтобы узнать подробно.
Имя функции | Описание |
---|---|
InStr | Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо. |
InStrRev | Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево. |
LCASE | Возвращает нижний регистр указанной строки. |
UCase | Возвращает верхний регистр указанной строки. |
Оставил | Возвращает определенное количество символов с левой стороны строки. |
Правильно | Возвращает определенное количество символов с правой стороны строки. |
средний | Возвращает определенное количество символов из строки на основе указанных параметров. |
LTrim | Возвращает строку после удаления пробелов в левой части указанной строки. |
RTrim | Возвращает строку после удаления пробелов с правой стороны указанной строки. |
Отделка | Возвращает строковое значение после удаления начальных и конечных пробелов. |
Len | Возвращает длину заданной строки. |
замещать | Возвращает строку после замены строки другой строкой. |
Космос | Заполняет строку указанным количеством пробелов. |
StrComp | Возвращает целочисленное значение после сравнения двух указанных строк. |
строка | Возвращает строку с указанным символом указанное количество раз. |
StrReverse | Возвращает строку после изменения последовательности символов данной строки. |
VBScript - Массивы
Что такое массив?
Мы очень хорошо знаем, что переменная является контейнером для хранения значения. Иногда разработчики могут одновременно хранить более одного значения в одной переменной. Когда ряд значений хранится в одной переменной, он называется переменной массива .
Декларация массива
Массивы объявляются так же, как и переменная, за исключением того, что объявление переменной массива использует круглые скобки. В следующем примере размер массива указан в скобках.
'Method 1 : Using Dim Dim arr1() 'Without Size 'Method 2 : Mentioning the Size Dim arr2(5) 'Declared with size of 5 'Method 3 : using 'Array' Parameter Dim arr3 arr3 = Array("apple","Orange","Grapes")
-
Хотя размер массива указан как 5, он может содержать 6 значений, так как индекс массива начинается с нуля.
-
Индекс массива не может быть отрицательным.
-
Массивы VBScript могут хранить переменные любого типа в массиве. Следовательно, массив может хранить целое число, строку или символы в одной переменной массива.
Хотя размер массива указан как 5, он может содержать 6 значений, так как индекс массива начинается с нуля.
Индекс массива не может быть отрицательным.
Массивы VBScript могут хранить переменные любого типа в массиве. Следовательно, массив может хранить целое число, строку или символы в одной переменной массива.
Присвоение значений массиву
Значения присваиваются массиву путем указания значения индекса массива для каждого из назначаемых значений. Это может быть строка.
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim arr(5) arr(0) = "1" 'Number as String arr(1) = "VBScript" 'String arr(2) = 100 'Number arr(3) = 2.45 'Decimal Number arr(4) = #10/07/2013# 'Date arr(5) = #12.45 PM# 'Time document.write("Value stored in Array index 0 : " & arr(0) & "<br />") document.write("Value stored in Array index 1 : " & arr(1) & "<br />") document.write("Value stored in Array index 2 : " & arr(2) & "<br />") document.write("Value stored in Array index 3 : " & arr(3) & "<br />") document.write("Value stored in Array index 4 : " & arr(4) & "<br />") document.write("Value stored in Array index 5 : " & arr(5) & "<br />") </script> </body> </html>
Когда приведенный выше код сохраняется как .HTML и выполняется в Internet Explorer, он дает следующий результат -
Value stored in Array index 0 : 1 Value stored in Array index 1 : VBScript Value stored in Array index 2 : 100 Value stored in Array index 3 : 2.45 Value stored in Array index 4 : 7/10/2013 Value stored in Array index 5 : 12:45:00 PM
Многомерные массивы
Массивы не ограничиваются одним измерением и могут иметь максимум 60 измерений. Двумерные массивы являются наиболее часто используемыми.
пример
В следующем примере объявляется многомерный массив с 3 строками и 4 столбцами.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim arr(2,3) ' Which has 3 rows and 4 columns arr(0,0) = "Apple" arr(0,1) = "Orange" arr(0,2) = "Grapes" arr(0,3) = "pineapple" arr(1,0) = "cucumber" arr(1,1) = "beans" arr(1,2) = "carrot" arr(1,3) = "tomato" arr(2,0) = "potato" arr(2,1) = "sandwitch" arr(2,2) = "coffee" arr(2,3) = "nuts" document.write("Value in Array index 0,1 : " & arr(0,1) & "<br />") document.write("Value in Array index 2,2 : " & arr(2,2) & "<br />") </script> </body> </html>
Когда приведенный выше код сохраняется как .HTML и выполняется в Internet Explorer, он дает следующий результат -
Value stored in Array index : 0 , 1 : Orange Value stored in Array index : 2 , 2 : coffee
Редим Заявление
Оператор ReDim используется для объявления переменных динамического массива и выделения или перераспределения пространства хранения.
ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
-
Сохранять - необязательный параметр, используемый для сохранения данных в существующем массиве при изменении размера последнего измерения.
-
varname - Обязательный параметр, который обозначает Имя переменной, которое должно соответствовать стандартным соглашениям об именах переменных.
-
subscripts - Обязательный параметр, который указывает размер массива.
Сохранять - необязательный параметр, используемый для сохранения данных в существующем массиве при изменении размера последнего измерения.
varname - Обязательный параметр, который обозначает Имя переменной, которое должно соответствовать стандартным соглашениям об именах переменных.
subscripts - Обязательный параметр, который указывает размер массива.
пример
В приведенном ниже примере массив был переопределен и затем сохранил значения при изменении существующего размера массива.
Примечание. При изменении размера массива, меньшего, чем он был изначально, данные в удаленных элементах будут потеряны.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim a() i = 0 redim a(5) a(0) = "XYZ" a(1) = 41.25 a(2) = 22 REDIM PRESERVE a(7) For i = 3 to 7 a(i) = i Next 'to Fetch the output For i = 0 to ubound(a) Msgbox a(i) Next </script> </body> </html>
Когда мы сохраняем приведенный выше скрипт как HTML и выполняем его в Internet Explorer, он дает следующий результат.
XYZ 41.25 22 3 4 5 6 7
Методы массива
В VBScript есть различные встроенные функции, которые помогают разработчикам эффективно обрабатывать массивы. Все методы, которые используются в сочетании с массивами, перечислены ниже. Пожалуйста, нажмите на название метода, чтобы узнать подробно.
функция | Описание |
---|---|
LBound | Функция, которая возвращает целое число, соответствующее наименьшему нижнему индексу из указанных массивов. |
UBound | Функция, которая возвращает целое число, соответствующее наибольшему нижнему индексу заданных массивов. |
Трещина | Функция, которая возвращает массив, содержащий указанное количество значений. Разделены на основе разделителя. |
Присоединиться | Функция, которая возвращает строку, содержащую указанное количество подстрок в массиве. Это прямо противоположная функция метода разделения. |
Фильтр | Функция, которая возвращает нулевой массив, который содержит подмножество строкового массива на основе определенных критериев фильтра. |
IsArray | Функция, которая возвращает логическое значение, указывающее, является ли входная переменная массивом. |
стирать | Функция, которая восстанавливает выделенную память для переменных массива. |
VBScript - функции даты и времени
Функции даты и времени VBScript помогают разработчикам преобразовывать дату и время из одного формата в другой или выражать значение даты или времени в формате, соответствующем определенному условию.
Функции даты
функция | Описание |
---|---|
Дата | Функция, которая возвращает текущую системную дату |
CDate | Функция, которая преобразует данный вход в дату |
DateAdd | Функция, которая возвращает дату, к которой был добавлен указанный интервал времени |
DateDiff | Функция, которая возвращает разницу между двумя периодами времени |
DatePart | Функция, которая возвращает указанную часть заданного значения даты ввода |
DateSerial | Функция, которая возвращает действительную дату для данного года, месяца и даты |
FormatDateTime | Функция, которая форматирует дату на основе предоставленных параметров |
IsDate | Функция, которая возвращает логическое значение независимо от того, является ли предоставленный параметр датой |
День | Функция, которая возвращает целое число от 1 до 31, представляющее день указанной даты |
Месяц | Функция, которая возвращает целое число от 1 до 12, представляющее месяц указанной даты |
Год | Функция, которая возвращает целое число, представляющее год указанной даты |
MonthName | Функция, которая возвращает имя определенного месяца для указанной даты |
WeekDay | Функция, которая возвращает целое число (от 1 до 7), которое представляет день недели для указанного дня. |
WeekDayName | Функция, которая возвращает название дня недели для указанного дня. |
Функции времени
функция | Описание |
---|---|
Сейчас | Функция, которая возвращает текущую системную дату и время |
Час | Функция, которая возвращает целое число в диапазоне от 0 до 23, представляющее часовую часть данного времени |
минут | Функция, которая возвращает целое число от 0 до 59, представляющее часть минут данного времени |
второй | Функция, которая возвращает целое число от 0 до 59, которое представляет часть секунд данного времени |
Время | Функция, которая возвращает текущее системное время |
таймер | Функция, которая возвращает количество секунд и миллисекунд с 12:00. |
TimeSerial | Функция, которая возвращает время для конкретного ввода часов, минут и секунд |
TimeValue | Функция, которая преобразует входную строку в формат времени |
VBScript - Процедуры
Что такое функция?
Функция - это группа многократно используемого кода, который можно вызывать в любом месте вашей программы. Это устраняет необходимость писать один и тот же код снова и снова. Это позволит программистам разделить большую программу на ряд небольших и управляемых функций. Помимо встроенных функций, VBScript позволяет нам также писать пользовательские функции. Этот раздел объяснит вам, как писать свои собственные функции в VBScript.
Определение функции
Прежде чем использовать функцию, нам нужно определить эту конкретную функцию. Наиболее распространенный способ определения функции в VBScript - использование ключевого слова Function, за которым следует уникальное имя функции, которое может содержать или не содержать список параметров и оператор с ключевым словом End Function , который указывает конец функции. ,
Основной синтаксис показан ниже -
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function Functionname(parameter-list) statement 1 statement 2 statement 3 ....... statement n End Function </script> </body> </html>
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello() msgbox("Hello there") End Function </script> </body> </html>
Вызов функции
Чтобы вызвать функцию где-нибудь позже в скрипте, вам просто нужно написать имя этой функции с ключевым словом Call .
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello() msgbox("Hello there") End Function Call sayHello() </script> </body> </html>
Параметры функции
До сих пор мы видели функцию без параметра, но есть возможность передавать различные параметры при вызове функции. Эти переданные параметры могут быть захвачены внутри функции, и любые манипуляции с этими параметрами могут быть выполнены. Функции вызываются с помощью ключевого слова вызова .
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function sayHello(name, age) msgbox( name & " is " & age & " years old.") End Function Call sayHello("Tutorials point", 7) </script> </body> </html>
Возврат значения из функции
Функция VBScript может иметь необязательный оператор возврата. Это необходимо, если вы хотите вернуть значение из функции. Например, вы можете передать два числа в функцию, а затем ожидать от функции возврата их умножения в вызывающей программе.
ПРИМЕЧАНИЕ. - Функция может возвращать несколько значений, разделенных запятой, в виде массива, назначенного самому имени функции.
пример
Эта функция принимает два параметра, объединяет их и возвращает результат в вызывающей программе. В VBScript значения возвращаются из функции с использованием имени функции. В случае, если вы хотите вернуть два или более значений, тогда имя функции возвращается с массивом значений. В вызывающей программе результат сохраняется в переменной результата.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function concatenate(first, last) Dim full full = first & last concatenate = full 'Returning the result to the function name itself End Function </script> </body> </html>
Теперь мы можем вызвать эту функцию следующим образом:
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Function concatenate(first, last) Dim full full = first & last concatenate = full 'Returning the result to the function name itself End Function ' Here is the usage of returning value from function. dim result result = concatenate("Zara", "Ali") msgbox(result) </script> </body> </html>
Подпроцедуры
Подпроцедуры похожи на функции, но есть несколько отличий.
-
Подпроцедуры DONOT Возвращают значение, в то время как функции могут возвращать или не возвращать значение.
-
Подпроцедуры могут быть вызваны без ключевого слова вызова.
-
Подпроцедуры всегда заключены в инструкции Sub и End Sub .
Подпроцедуры DONOT Возвращают значение, в то время как функции могут возвращать или не возвращать значение.
Подпроцедуры могут быть вызваны без ключевого слова вызова.
Подпроцедуры всегда заключены в инструкции Sub и End Sub .
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Sub sayHello() msgbox("Hello there") End Sub </script> </body> </html>
Процедуры вызова
Чтобы вызвать процедуру где-то позже в скрипте, вам просто нужно написать имя этой процедуры с ключевым словом Call или без него.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Sub sayHello() msgbox("Hello there") End Sub sayHello() </script> </body> </html>
Расширенные понятия для функций
Существует много узнать о функциях VBScript. Мы можем передать параметр по значению или по ссылке. Пожалуйста, нажмите на каждый из них, чтобы узнать больше.
-
ByVal - передать параметры по значению
-
ByRef - передать параметры по ссылке
ByVal - передать параметры по значению
ByRef - передать параметры по ссылке
VBScript - Диалоговые окна
Что такое диалоговое окно?
VBScript позволяет разработчикам эффективно взаимодействовать с пользователем. Это может быть окно сообщения для отображения сообщения пользователю или поле ввода, с помощью которого пользователь может вводить значения.
Функция VBScript MsgBox
Функция MsgBox отображает окно сообщения и ждет, когда пользователь нажмет кнопку, а затем действие будет выполнено на основе кнопки, нажатой пользователем.
Синтаксис
MsgBox(prompt[,buttons][,title][,helpfile,context])
Описание параметра
-
Подсказка - Обязательный параметр. Строка, которая отображается в виде сообщения в диалоговом окне. Максимальная длина подсказки составляет около 1024 символов. Если сообщение распространяется более чем на строку, то мы можем разделить строки, используя символ возврата каретки (Chr (13)) или символ перевода строки (Chr (10)) между каждой строкой.
-
кнопки - необязательный параметр. Числовое выражение, определяющее тип отображаемых кнопок, стиль используемых значков, идентификатор кнопки по умолчанию и модальность окна сообщения. Если оставить пустым, значение по умолчанию для кнопок будет 0.
-
Заголовок - необязательный параметр. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
-
helpfile - необязательный параметр. Строковое выражение, определяющее файл справки, который используется для предоставления контекстно-зависимой справки для диалогового окна.
-
context - необязательный параметр Числовое выражение, обозначающее номер контекста справки, назначенный автором справки для соответствующего раздела справки. Если предоставляется контекст, также должен быть предоставлен файл справки.
Подсказка - Обязательный параметр. Строка, которая отображается в виде сообщения в диалоговом окне. Максимальная длина подсказки составляет около 1024 символов. Если сообщение распространяется более чем на строку, то мы можем разделить строки, используя символ возврата каретки (Chr (13)) или символ перевода строки (Chr (10)) между каждой строкой.
кнопки - необязательный параметр. Числовое выражение, определяющее тип отображаемых кнопок, стиль используемых значков, идентификатор кнопки по умолчанию и модальность окна сообщения. Если оставить пустым, значение по умолчанию для кнопок будет 0.
Заголовок - необязательный параметр. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
helpfile - необязательный параметр. Строковое выражение, определяющее файл справки, который используется для предоставления контекстно-зависимой справки для диалогового окна.
context - необязательный параметр Числовое выражение, обозначающее номер контекста справки, назначенный автором справки для соответствующего раздела справки. Если предоставляется контекст, также должен быть предоставлен файл справки.
Параметр Buttons может принимать любое из следующих значений:
-
0 vbOKOnly Отображает только кнопку ОК.
-
1 vbOKCancel Отображает кнопки OK и Отмена.
-
2 vbAbortRetryIgnore Отображает кнопки «Отмена», «Повторить» и «Игнорировать».
-
3 vBYesNoCancel Отображает кнопки «Да», «Нет» и «Отмена».
-
4 vBYesNo Отображает кнопки «Да» и «Нет».
-
5 vbRetryCancel Отображает кнопки «Повторить» и «Отмена».
-
16 vbCritical Отображает значок критического сообщения.
-
32 vbQuestion Отображает значок запроса предупреждения.
-
48 vbExclamation Отображает значок предупреждающего сообщения.
-
64 vbInformation Отображает значок информационного сообщения.
-
0 vbDefaultButton1 Первая кнопка по умолчанию.
-
256 vbDefaultButton2 Вторая кнопка по умолчанию.
-
512 vbDefaultButton3 Третья кнопка по умолчанию.
-
768 vbDefaultButton4 Четвертая кнопка по умолчанию.
-
0 vbApplicationModal Модальное приложение. Текущее приложение не будет работать, пока пользователь не ответит на окно сообщения.
-
4096 vbSystemModal Система модальных. Все приложения не будут работать, пока пользователь не ответит на окно сообщения.
0 vbOKOnly Отображает только кнопку ОК.
1 vbOKCancel Отображает кнопки OK и Отмена.
2 vbAbortRetryIgnore Отображает кнопки «Отмена», «Повторить» и «Игнорировать».
3 vBYesNoCancel Отображает кнопки «Да», «Нет» и «Отмена».
4 vBYesNo Отображает кнопки «Да» и «Нет».
5 vbRetryCancel Отображает кнопки «Повторить» и «Отмена».
16 vbCritical Отображает значок критического сообщения.
32 vbQuestion Отображает значок запроса предупреждения.
48 vbExclamation Отображает значок предупреждающего сообщения.
64 vbInformation Отображает значок информационного сообщения.
0 vbDefaultButton1 Первая кнопка по умолчанию.
256 vbDefaultButton2 Вторая кнопка по умолчанию.
512 vbDefaultButton3 Третья кнопка по умолчанию.
768 vbDefaultButton4 Четвертая кнопка по умолчанию.
0 vbApplicationModal Модальное приложение. Текущее приложение не будет работать, пока пользователь не ответит на окно сообщения.
4096 vbSystemModal Система модальных. Все приложения не будут работать, пока пользователь не ответит на окно сообщения.
Вышеуказанные значения логически разделены на четыре группы: первая группа (от 0 до 5) указывает кнопки, отображаемые в окне сообщения. Вторая группа (16, 32, 48, 64) описывает тип отображаемой иконки, третья группа (0, 256, 512, 768) указывает, какая кнопка должна быть по умолчанию, и четвертая группа (0, 4096). ) определяет модальность окна сообщения.
Возвращаемые значения
Функция MsgBox может возвращать одно из следующих значений:
-
1 - vbOK - нажата кнопка ОК
-
2 - vbCancel - Отмена была нажата
-
3 - vbAbort - нажата кнопка «Прервать»
-
4 - vbRetry - повторная попытка была нажата
-
5 - vbIgnore - щелкнули Ignore
-
6 - vbYes - Да нажали
-
7 - vbNo - нет кликали
1 - vbOK - нажата кнопка ОК
2 - vbCancel - Отмена была нажата
3 - vbAbort - нажата кнопка «Прервать»
4 - vbRetry - повторная попытка была нажата
5 - vbIgnore - щелкнули Ignore
6 - vbYes - Да нажали
7 - vbNo - нет кликали
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> 'Message Box with just prompt message MsgBox("Welcome") 'Message Box with title, yes no and cancel Butttons a = MsgBox("Do you like blue color?",3,"Choose options") ' Assume that you press No Button document.write("The Value of a is " & a) </script> </body> </html>
Когда приведенный выше сценарий выполняется, отображается окно сообщения, и если вы нажмете кнопку Нет, значение a будет равно 7.
The Value of a is 7
Функция VBScript InputBox
Функция InputBox помогает пользователю получить значения от пользователя. После ввода значений, если пользователь нажимает кнопку OK или нажимает клавишу ВВОД на клавиатуре, функция InputBox возвращает текст в текстовое поле. Если пользователь нажимает кнопку «Отмена», функция возвращает пустую строку («»).
Синтаксис
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
Описание параметра
-
Подсказка - Обязательный параметр. Строка, которая отображается в виде сообщения в диалоговом окне. Максимальная длина подсказки составляет около 1024 символов. Если сообщение распространяется более чем на строку, то мы можем разделить строки, используя символ возврата каретки (Chr (13)) или символ перевода строки (Chr (10)) между каждой строкой.
-
Заголовок - необязательный параметр. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
-
По умолчанию - необязательный параметр. Текст по умолчанию в текстовом поле, который пользователь хотел бы отобразить.
-
XPos - необязательный параметр. Позиция оси X, которая представляет быстрое расстояние от левой стороны экрана по горизонтали. Если оставить это поле пустым, поле ввода будет горизонтально отцентрировано.
-
YPos - необязательный параметр. Положение оси Y, которое представляет быстрое расстояние от левой стороны экрана по вертикали. Если оставить это поле пустым, поле ввода будет центрировано по вертикали.
-
helpfile - необязательный параметр. Строковое выражение, определяющее файл справки, который будет использоваться для предоставления контекстно-зависимой справки для диалогового окна.
-
context - необязательный параметр Числовое выражение, обозначающее номер контекста справки, назначенный автором справки для соответствующего раздела справки. Если предоставляется контекст, также должен быть предоставлен файл справки.
Подсказка - Обязательный параметр. Строка, которая отображается в виде сообщения в диалоговом окне. Максимальная длина подсказки составляет около 1024 символов. Если сообщение распространяется более чем на строку, то мы можем разделить строки, используя символ возврата каретки (Chr (13)) или символ перевода строки (Chr (10)) между каждой строкой.
Заголовок - необязательный параметр. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
По умолчанию - необязательный параметр. Текст по умолчанию в текстовом поле, который пользователь хотел бы отобразить.
XPos - необязательный параметр. Позиция оси X, которая представляет быстрое расстояние от левой стороны экрана по горизонтали. Если оставить это поле пустым, поле ввода будет горизонтально отцентрировано.
YPos - необязательный параметр. Положение оси Y, которое представляет быстрое расстояние от левой стороны экрана по вертикали. Если оставить это поле пустым, поле ввода будет центрировано по вертикали.
helpfile - необязательный параметр. Строковое выражение, определяющее файл справки, который будет использоваться для предоставления контекстно-зависимой справки для диалогового окна.
context - необязательный параметр Числовое выражение, обозначающее номер контекста справки, назначенный автором справки для соответствующего раздела справки. Если предоставляется контекст, также должен быть предоставлен файл справки.
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> ' Input Box with only Prompt InputBox("Enter a number") ' Input Box with a Title a = InputBox("Enter a Number","Enter Value") msgbox a ' Input Box with a Prompt,Title and Default value a = InputBox("Enter a Number","Enter Value",123) msgbox a ' Input Box with a Prompt,Title,Default and XPos a = InputBox("Enter your name","Enter Value",123,700) msgbox a ' Input Box with a Prompt,Title and Default and YPos a = InputBox("Enter your name","Enter Value",123,,500) msgbox a </script> </body> </html>
Когда вышеуказанный сценарий выполняется, отображается поле ввода и отображается введенное значение пользователем.
Объектно-ориентированный VBScript
Что такое объект
Объекты среды выполнения VBScript помогают нам выполнять различные задачи. Этот раздел поможет вам понять, как создать экземпляр объекта и работать с ним.
Синтаксис
Чтобы беспрепятственно работать с объектами, нам нужно объявить объект и создать его экземпляр с помощью Set Keyword.
Dim objectname 'Declare the object name Set objectname = CreateObject(object_type)
пример
В приведенном ниже примере мы создаем объект типа Scripting.Dictionary .
Dim obj Set obj = CreateObject("Scripting.Dictionary")
Уничтожение объектов
Значение уничтожения объекта состоит в том, чтобы освободить память и сбросить переменную объекта.
Синтаксис
Чтобы уничтожить объекты, нам нужно использовать Set Keyword, за которым следует имя объекта, и указать Nothing .
Set objectname = Nothing 'Destroy the object.
пример
В приведенном ниже примере мы создаем объект типа Scripting.Dictionary .
Dim obj Set obj = CreateObject("Scripting.Dictionary") Set obj = Nothing.
Использование объекта
Пожалуйста, нажмите на каждый из указанных типов объектов, чтобы узнать больше.
Тип объекта | Описание |
---|---|
Учебный класс | Класс - это контейнер, который содержит методы и переменные, связанные с ним, и доступ к ним осуществляется путем создания объекта типа Class. |
Scripting.FileSystemObject | Это группа объектов, с которой мы можем работать с файловой системой. |
Scripting.Dictionary | Группа объектов, которые используются для создания объектов словаря. |
отлаживать | Глобальный объект, с помощью которого мы можем отправить вывод в отладчик скриптов Microsoft. |
VBScript - Регулярные выражения
Регулярные выражения - это последовательность символов, образующая шаблон, который в основном используется для поиска и замены. Целью создания шаблона является сопоставление определенных строк, чтобы разработчик мог извлекать символы в зависимости от условий и заменять определенные символы.
RegExp Object
Объект RegExp помогает разработчикам соответствовать шаблону строк, а свойства и методы помогают нам легко работать с регулярными выражениями. Это похоже на RegExp в JavaScript
свойства
-
Pattern - Метод Pattern представляет собой строку, которая используется для определения регулярного выражения, и его следует установить перед использованием объекта регулярного выражения.
-
IgnoreCase - логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке, если оно равно true или false. Если не указано явно, значение IgnoreCase устанавливается в False.
-
Global - логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке. Если не указано явно, глобальное значение установлено в False.
Pattern - Метод Pattern представляет собой строку, которая используется для определения регулярного выражения, и его следует установить перед использованием объекта регулярного выражения.
IgnoreCase - логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке, если оно равно true или false. Если не указано явно, значение IgnoreCase устанавливается в False.
Global - логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке. Если не указано явно, глобальное значение установлено в False.
методы
-
Test (search-string) - метод Test принимает строку в качестве аргумента и возвращает True, если регулярное выражение может быть успешно сопоставлено со строкой, в противном случае возвращается False.
-
Replace (search-string, replace-string) - метод Replace принимает 2 параметра. Если поиск успешен, то он заменяет это совпадение строкой замены, и возвращается новая строка. Если совпадений нет, возвращается исходная строка поиска.
-
Execute (search-string) - метод Execute работает как Replace, за исключением того, что он возвращает объект коллекции Matches, содержащий объект Match для каждого успешного соответствия. Это не изменяет исходную строку.
Test (search-string) - метод Test принимает строку в качестве аргумента и возвращает True, если регулярное выражение может быть успешно сопоставлено со строкой, в противном случае возвращается False.
Replace (search-string, replace-string) - метод Replace принимает 2 параметра. Если поиск успешен, то он заменяет это совпадение строкой замены, и возвращается новая строка. Если совпадений нет, возвращается исходная строка поиска.
Execute (search-string) - метод Execute работает как Replace, за исключением того, что он возвращает объект коллекции Matches, содержащий объект Match для каждого успешного соответствия. Это не изменяет исходную строку.
Объект коллекции матчей
Объект коллекции Matches возвращается как результат метода Execute. Этот объект коллекции может содержать ноль или более объектов Match, и свойства этого объекта доступны только для чтения.
-
Count - Метод Count представляет количество совпадающих объектов в коллекции.
-
Item - метод Item позволяет получить доступ к объектам сопоставления из объекта коллекций совпадений.
Count - Метод Count представляет количество совпадающих объектов в коллекции.
Item - метод Item позволяет получить доступ к объектам сопоставления из объекта коллекций совпадений.
Матч Объект
Объект Match содержится в объекте коллекции match. Эти объекты представляют успешное совпадение после поиска строки.
-
FirstIndex - представляет позицию в исходной строке, где произошло совпадение. Этот индекс начинается с нуля, что означает, что первая позиция в строке равна 0.
-
Длина - значение, представляющее общую длину совпадающей строки.
-
Значение - значение, представляющее сопоставленное значение или текст. Это также значение по умолчанию при доступе к объекту Match.
FirstIndex - представляет позицию в исходной строке, где произошло совпадение. Этот индекс начинается с нуля, что означает, что первая позиция в строке равна 0.
Длина - значение, представляющее общую длину совпадающей строки.
Значение - значение, представляющее сопоставленное значение или текст. Это также значение по умолчанию при доступе к объекту Match.
Все о шаблоне параметров
Построение образца похоже на PERL. Создание шаблонов - самая важная вещь при работе с регулярными выражениями. В этом разделе мы поговорим о том, как создать шаблон на основе различных факторов.
Соответствие позиции
Важность сопоставления позиций заключается в том, чтобы мы размещали регулярные выражения в правильных местах.
Условное обозначение | Описание |
---|---|
^ | Соответствует только началу строки. |
$ | Совпадение только с концом строки. |
б | Соответствует любой границе слова |
B | Соответствует любой границе без слов |
Соответствие литералам
Любая форма символов, таких как алфавит, цифра или специальный символ или даже десятичный, шестнадцатеричный, может рассматриваться как литерал. Поскольку некоторые символы уже имеют особое значение в контексте регулярных выражений, нам нужно избегать их, используя escape-последовательности.
Условное обозначение | Описание |
---|---|
алфавитно-цифровой | Совпадает только с алфавитными и числовыми символами. |
п | Соответствует новой строке. |
[ | Соответствует [только буквально |
] | Спички] только литералы |
( | Матчи (только буквальные) |
) | Совпадения) только литералы |
т | Соответствует горизонтальной вкладке |
v | Соответствует вертикальной вкладке |
| | Матчи | только буквальный |
{ | Матчи {только литералы |
} | Матчи} только литералы |
\ | Совпадения только буквальные |
? | Матчи ? только буквальный |
* | Совпадения * только литералы |
+ | Совпадения + только литералы |
. | Матчи . только буквальный |
б | Соответствует любой границе слова |
B | Соответствует любой границе без слов |
е | Соответствует каналу |
р | Соответствует возврат каретки |
ххх | Соответствует ASCII-символу восьмеричного числа xxx. |
XDD | Соответствует символу ASCII шестнадцатеричного числа dd. |
ихххх | Соответствует ASCII-символу литерала UNICODE xxxx. |
Соответствие классов персонажей
Классы символов - это Шаблон, сформированный индивидуальной группировкой и заключенный в фигурные скобки []. Если мы ожидаем класс символов, которого не должно быть в списке, то мы должны игнорировать этот конкретный класс символов, используя отрицательный символ, который является заглавной буквой ^.
Условное обозначение | Описание |
---|---|
[Хуг] | Соответствует любому классу символов, заключенному в набор символов. |
[^ Хуг] | Соответствует любому из классов символов, которые НЕ включены в набор символов. |
, | Соответствует любому классу символов, кроме n |
ш | Соответствует любому классу символов слова. Эквивалентно [a-zA-Z_0-9] |
W | Соответствует любому классу не-словесных символов. Эквивалентно [^ a-zA-Z_0-9] |
d | Соответствует любому классу цифр. Эквивалентно [0-9]. |
D | Соответствует любому нецифровому классу символов. Эквивалентно [^ 0-9]. |
s | Соответствует любому классу символов пробела. Эквивалентно [ t r n v f] |
S | Соответствует любому классу символов пробела. Эквивалентен [^ t r n v f] |
Повторение соответствия
Сопоставление повторений позволяет выполнять многократный поиск в регулярном выражении. Он также определяет количество повторений элемента в регулярном выражении.
Условное обозначение | Описание |
---|---|
* | Соответствует нулю или более вхождений данного регулярного выражения. Эквивалентно {0,}. |
+ | Соответствует одному или нескольким вхождениям данного регулярного выражения. Эквивалент {1,}. |
? | Соответствует нулю или одному вхождению данного регулярного выражения. Эквивалент {0,1}. |
{Икс} | Точно соответствует x количеству вхождений данного регулярного выражения. |
{Икс,} | Совпадение по крайней мере x или более вхождений данного регулярного выражения. |
{Х, у} | Соответствует x-y количеству вхождений данного регулярного выражения. |
Чередование и группировка
Чередование и группировка помогают разработчикам создавать более сложные Регулярные выражения, в частности обрабатывать сложные предложения внутри Регулярного выражения, что обеспечивает большую гибкость и контроль.
Условное обозначение | Описание |
---|---|
0 | Группировка предложения для создания предложения. «(xy)? (z)» соответствует «xyz» или «z». |
| | Чередование объединяет одно предложение регулярного выражения, а затем сопоставляет любое из отдельных предложений. «(ij) | (23) | (pq)» соответствует «ij» или «23» или «pq». |
Создание регулярных выражений
Ниже приведены несколько примеров, которые четко объясняют, как построить регулярное выражение.
Регулярное выражение | Описание |
---|---|
"^ s * .." и ".. s * $" | Представляет, что в одной строке может быть любое количество начальных и конечных пробелов. |
"(( $ S) |? (# S)?)?" | Представляет необязательный знак $ или #, за которым следует необязательный пробел. |
"(( D + (. ( Д д )?)?))" | Представляет, что присутствует хотя бы одна цифра, за которой следуют необязательные десятичные дроби и две цифры после десятичных. |
пример
В приведенном ниже примере проверяется, вводил ли пользователь идентификатор электронной почты, формат которого должен совпадать, так что после идентификатора электронной почты следует «@», а затем имя домена.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> strid = "welcome.user@tutorialspoint.co.us" Set re = New RegExp With re .Pattern = "^[w-.]{1,}@([da-zA-Z-]{1,}.){1,}[da-zA-Z-]{2,3}$" .IgnoreCase = False .Global = False End With ' Test method returns TRUE if a match is found If re.Test( strid ) Then Document.write(strid & " is a valid e-mail address") Else Document.write(strid & " is NOT a valid e-mail address") End If Set re = Nothing </script> </body> </html>
VBScript - Обработка ошибок
Существует три типа ошибок в программировании: (a) синтаксические ошибки, (b) ошибки времени выполнения и (c) логические ошибки.
Синтаксические ошибки
Синтаксические ошибки, также называемые ошибками синтаксического анализа, возникают во время интерпретации VBScript. Например, следующая строка вызывает синтаксическую ошибку, потому что отсутствует закрывающая скобка -
<script type = "text/vbscript"> dim x,y x = "Tutorialspoint" y = Ucase(x </script>
Ошибки во время выполнения
Ошибки времени выполнения, также называемые исключениями, возникают во время выполнения после интерпретации. Например, следующая строка вызывает ошибку во время выполнения, потому что здесь синтаксис правильный, но во время выполнения он пытается вызвать fnmultiply, который является несуществующей функцией -
<script type = "text/vbscript"> Dim x,y x = 10 y = 20 z = fnadd(x,y) a = fnmultiply(x,y) Function fnadd(x,y) fnadd = x+y End Function </script>
Логические ошибки
Логические ошибки могут быть наиболее сложным типом ошибок для отслеживания. Эти ошибки не являются результатом синтаксиса или ошибки времени выполнения. Вместо этого они возникают, когда вы совершаете ошибку в логике, управляющей вашим сценарием, и вы не получаете ожидаемого результата. Вы не можете поймать эти ошибки, потому что это зависит от требований вашего бизнеса, какую логику вы хотите использовать в своей программе. Например, деление числа на ноль или написанного скрипта, который входит в бесконечный цикл.
Err Object
AПустим, если у нас есть ошибка во время выполнения, то выполнение останавливается, отображая сообщение об ошибке. Как разработчик, если мы хотим зафиксировать ошибку, то используется Error Object.
пример
В приведенном ниже примере Err.Number дает номер ошибки, а Err.Description - описание ошибки.
<script type = "text/vbscript"> Err.Raise 6 ' Raise an overflow error. MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description Err.Clear ' Clear the error. </script>
VBScript Разные заявления
В VBScript есть несколько других важных утверждений, которые помогут разработчикам разработать эффективный скрипт. В следующей таблице приведен список таких важных утверждений. В этой главе мы подробно обсудим каждое из этих утверждений с примерами.
категория | Имя функции / Название оператора |
---|---|
Опции | Вариант Явный |
ID скриптового движка | ScriptEngine |
варианты | IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName |
выражение | Eval, Execute |
Контрольное заявление | С ... Конец |
Математическая функция | Перемешайте |
Вариант Явный
Опция Explicit заставляет разработчика объявлять переменные с помощью оператора Dim, прежде чем они будут использованы в какой-то части кода.
Синтаксис
Option Explicit
пример
Если мы используем Option Explicit и если мы не объявляем переменные, то интерпретатор выдаст ошибку.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Option Explicit Dim x,y,z,a x = 10 y = 20 z = fnadd(x,y) a = fnmultiply(x,y) Function fnadd(x,y) fnadd = x+y End Function </script> </body> </html>
ScriptEngine
ScriptEngine представляет подробную информацию об используемом языке сценариев. Он также используется в сочетании с ScriptEngineMajorVersion, ScriptEngineMinor Version, ScriptEngineBuildVersion, который дает основную версию механизма vbscript, вспомогательную версию механизма vbscript и версию сборки vbscript соответственно.
Синтаксис
ScriptEngine
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim scriptdetails scriptdetails = " Version " & ScriptEngine & " - " 'For getting Major version, use ScriptEngineMajorVersion' scriptdetails = scriptdetails & ScriptEngineMajorVersion & "." 'For getting Minor version, use ScriptEngineMinorVersion' scriptdetails = scriptdetails & ScriptEngineMinorVersion & "." 'For getting Build version, use ScriptEngineBuildVersion' scriptdetails = scriptdetails & ScriptEngineBuildVersion Document.write scriptdetails </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Version VBScript - 5.8.16996
Пустой
Функция IsEmpty используется для проверки, является ли выражение пустым. Возвращает логическое значение. IsEmpty возвращает True, если переменная неинициализирована или явно установлена в значение Empty. В противном случае выражение возвращает False.
Синтаксис
IsEmpty(expression)
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, MyCheck MyCheck = IsEmpty(var) Document.write "Line 1 : " & MyCheck & "<br />" var = Null ' Assign Null. MyCheck = IsEmpty(var) Document.write "Line 2 : " & MyCheck & "<br />" var = Empty ' Assign Empty. MyCheck = IsEmpty(var) Document.write "Line 3 : " & MyCheck & "<br />" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Line 1 : True Line 2 : False Line 3 : True
Нулевой
Функция IsNull используется для проверки наличия в выражении правильных данных. Возвращает логическое значение. IsNull возвращает True, если переменная равна Null, в противном случае выражение возвращает False.
Синтаксис
IsNull(expression)
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, res res = IsNull(var) document.write "Line 1 : " & res & "<br />" var = Null res = IsNull(var) document.write "Line 2 : " & res & "<br />" var = Empty res = IsNull(var) document.write "Line 3 : " & res & "<br />" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Line 1 : False Line 2 : True Line 3 : False
IsObject
Функция IsObject используется для проверки, имеет ли выражение допустимый объект. Возвращает логическое значение. IsObject возвращает True, если выражение содержит подтип объекта, в противном случае выражение возвращает False.
Синтаксис
IsObject(expression)
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim fso,b b = 10 set fso = createobject("Scripting.Filesystemobject") x = isobject(fso) Document.write "Line 1 : " & x & "<br />" y = isobject(b) Document.write "Line 2 : " & y & "<br />" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Line 1 : True Line 2 : False
IsNumeric
Функция IsNumeric используется для проверки того, имеет ли выражение подтип числа. Возвращает логическое значение. IsObject возвращает True, если выражение содержит подтип числа, в противном случае выражение возвращает False.
Синтаксис
IsNumeric(expression)
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, chk var = 20 chk = IsNumeric(var) Document.write "Line 1 : " & chk & "<br />" var = "3.1415935745" chk = IsNumeric(var) Document.write "Line 2 : " & chk & "<br / >" var = "20 Chapter 23.123 VBScript" chk = IsNumeric(var) Document.write "Line 3 : " & chk & "<br / >" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Line 1 : True Line 2 : True Line 3 : False
TypeName
Функция TypeName используется для возврата информации о подтипе варианта переменной.
Синтаксис
TypeName(varname)
Функция Typename может возвращать любое из следующих значений.
-
Byte - значение байта
-
Integer - целочисленное значение
-
Long - Long Integer Value
-
Single - Значение с плавающей точкой одинарной точности
-
Double - значение с плавающей точкой двойной точности
-
Валюта - стоимость валюты
-
Десятичное - десятичное значение
-
Дата - Дата или Время Значение
-
String - Строка символов Значение
-
Булево - булево значение
-
Пусто - неинициализированное значение
-
Null - нет действительных данных
-
Object - имя типа объекта
-
Ничего - переменная объекта, которая еще не ссылается на экземпляр объекта
-
ошибка
Byte - значение байта
Integer - целочисленное значение
Long - Long Integer Value
Single - Значение с плавающей точкой одинарной точности
Double - значение с плавающей точкой двойной точности
Валюта - стоимость валюты
Десятичное - десятичное значение
Дата - Дата или Время Значение
String - Строка символов Значение
Булево - булево значение
Пусто - неинициализированное значение
Null - нет действительных данных
Object - имя типа объекта
Ничего - переменная объекта, которая еще не ссылается на экземпляр объекта
ошибка
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim ArrVar(2), vartype NullVar = Null ' Assign Null value. vartype = TypeName(3.1450) Document.write "Line 1 : " & vartype & "<br />" vartype = TypeName(432) Document.write "Line 2 : " & vartype & "<br />" vartype = TypeName("Microsoft") Document.write "Line 3 : " & vartype & "<br />" vartype = TypeName(NullVar) Document.write "Line 4 : " & vartype & "< br />" vartype = TypeName(ArrVar) Document.write "Line 5 : " & vartype & "<br />" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
Line 1 : Double Line 2 : Integer Line 3 : String Line 4 : Null Line 5 : Variant()
Eval
Функция Eval выполняет выражение и возвращает результат в виде строки или числа.
Синтаксис
Eval(expression)
Аргумент Expression может быть строковым выражением или числом. Если вы передаете в функцию Eval строку, которая не содержит числовое выражение или имя функции, а содержит только простую текстовую строку, возникает ошибка во время выполнения. Например, Eval («VBScript») приводит к ошибке.
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Document.write Eval("10 + 10") & "<br />" Document.write Eval("101 = 200") & "<br />" Document.write Eval("5 * 3") & "<br />" </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
20 false 15
казнить
Оператор Execute принимает аргумент, который является строковым выражением, содержащим один или несколько операторов для выполнения.
Синтаксис
Execute(expression)
В VBScript a = b можно интерпретировать двумя способами. Его можно рассматривать как оператор присваивания, в котором значение x присваивается y. Это также может быть интерпретировано как выражение, которое проверяет, имеют ли a и b одинаковые значения. Если они это сделают, результат - Истина; если это не так, результатом является Ложь. Оператор Execute всегда использует первую интерпретацию, а оператор Eval всегда использует вторую.
пример
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim x x = "Global" y = "VBScript" Execute("x = y") msgbox x msgbox y </script> </body> </html>
Сохраните файл с расширением .html после выполнения скрипта в IE, на экране отобразится следующий результат.
VBScript VBScript
С ... Конец с
Оператор With позволяет нам выполнять серию операций с указанным объектом без явного повторного упоминания имени объекта.
Синтаксис
With (objectname) statement 1 statement 2 statement 3 ... ... statement n End With
пример
После выполнения следующего скрипта Winword открывается и вводится указанный текст.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Msg = "Vbscript" & vbCrLf & "Programming" Set objWord = CreateObject("Word.Application") objWord.Visible = True ' Objects methods are accessed without requaliyfying the objects again.' With objWord .Documents.Add .Selection.TypeText Msg .Selection.WholeStory End With </script> </body> </html>
Перемешайте
Оператор Randomize инициализирует генератор случайных чисел, который помогает разработчикам генерировать случайные числа.
Синтаксис
Randomize [number]
пример
После выполнения следующего скрипта Winword открывается и вводится указанный текст.
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim MyValue Randomize MyValue = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100. MsgBox MyValue </script> </body> </html>
Сохраните вышеприведенный скрипт как HTML, и после выполнения скрипта в IE будет показан следующий вывод.
These handy blocks of information will help you explore the many different parts of the Visual Basic Scripting language.
You’ll find all the parts of the VBScript language listed alphabetically under the Alphabetic Keyword List. But if you want to examine just one category, say, objects, each language category has its own, more compact section.
How’s it work? Click on one of the headings to the left to display a list of items contained in that category. From this list, select the topic that you want to view. Once you’ve opened that topic, you can easily link to other related sections.
So, go ahead and take a look! Study some statements, mull over the methods, or figure out a few functions. You’ll see just how versatile the VBScript language can be!
Language Element | Description |
Abs Function | Returns the absolute value of a number. |
Addition Operator (+) | Sums two numbers. |
And Operator | Performs a logical conjunction on two expressions. |
Array Function | Returns a Variant containing an array. |
Asc Function | Returns the ANSI character code corresponding to the first letter in a string. |
Assignment Operator (=) | Assigns a value to a variable or property. |
Atn Function | Returns the arctangent of a number. |
Call Statement | Transfers control to a Sub or Function procedure. |
CBool Function | Returns an expression that has been converted to a Variant of subtype Boolean. |
CByte Function | Returns an expression that has been converted to a Variant of subtype Byte. |
CCur Function | Returns an expression that has been converted to a Variant of subtype Currency. |
CDate Function | Returns an expression that has been converted to a Variant of subtype Date. |
CDbl Function | Returns an expression that has been converted to a Variant of subtype Double. |
Chr Function | Returns the character associated with the specified ANSI character code. |
CInt Function | Returns an expression that has been converted to a Variant of subtype Integer. |
Class Object | Provides access to the events of a created class. |
Class Statement | Declares the name of a class. |
Clear Method | Clears all property settings of the Err object. |
CLng Function | Returns an expression that has been converted to a Variant of subtype Long. |
Color Constants | List of color constants. |
Comparison Constants | List of constants used in comparison operations. |
Concatenation Operator (&) | Forces string concatenation of two expressions. |
Const Statement | Declares constants for use in place of literal values. |
Cos Function | Returns the cosine of an angle. |
CreateObject Function | Creates and returns a reference to an Automation object. |
CSng Function | Returns an expression that has been converted to a Variant of subtype Single. |
CStr Function | Returns an expression that has been converted to a Variant of subtype String. |
Date and Time Constants | List of constants defining days of week and other constants used in Date and Time operations. |
Date Format Constants | List of constants used to format dates and times. |
Date Function | Returns the current system date. |
DateAdd Function | Returns a date to which a specified time interval has been added. |
DateDiff Function | Returns the number of intervals between two dates. |
DatePart Function | Returns the specified part of a given date. |
DateSerial Function | Returns a Variant of subtype Date for a specified year, month, and day. |
DateValue Function | Returns a Variant of subtype Date. |
Day Function | Returns a whole number between 1 and 31, inclusive, representing the day of the month. |
Description Property | Returns or sets a descriptive string associated with an error. |
Dictionary Object | Object that stores data key, item pairs. |
Dim Statement | Declares variables and allocates storage space. |
Division Operator (/) | Divides two numbers and returns a floating-point result. |
Do…Loop Statement | Repeats a block of statements while a condition is True or until a condition becomes True. |
Empty | Indicates an uninitialized variable value. |
Eqv Operator | Performs a logical equivalence on two expressions. |
Erase Statement | Reinitializes the elements of fixed-size arrays and deallocates dynamic-array storage space. |
Err Object | Contains information about run-time errors. |
Eval Function | Evaluates an expression and returns the result. |
Execute Method | Executes a regular expression search against a specified string. |
Execute Statement | Executes one or more specified statements. |
ExecuteGlobal Statement | Executes one or more specified statements in the global namespace of a script. |
Exit Statement | Exits a block of Do…Loop, For…Next, Function, or Sub code. |
Exp Function | Returns e (the base of natural logarithms) raised to a power. |
Exponentiation Operator (^) | Raises a number to the power of an exponent. |
False | Keyword that has a value equal to zero. |
FileSystemObject Object | Provides access to a computer’s file system. |
Filter Function | Returns a zero-based array containing a subset of a string array based on a specified filter criteria. |
FirstIndex Property | Returns the position in a search string where a match occurs. |
Fix Function | Returns the integer portion of a number. |
For…Next Statement | Repeats a group of statements a specified number of times. |
For Each…Next Statement | Repeats a group of statements for each element in an array or collection. |
FormatCurrency Function | Returns an expression formatted as a currency value using the currency symbol defined in the system control panel. |
FormatDateTime Function | Returns an expression formatted as a date or time. |
FormatNumber Function | Returns an expression formatted as a number. |
FormatPercent Function | Returns an expression formatted as a percentage (multiplied by 100) with a trailing % character. |
Function Statement | Declares the name, arguments, and code that form the body of a Function procedure. |
GetLocale Function | Returns the current locale ID value. |
GetObject Function | Returns a reference to an Automation object from a file. |
GetRef Function | Returns a reference to a procedure that can be bound to an event. |
Global Property | Sets or returns a Boolean value. |
Hex Function | Returns a string representing the hexadecimal value of a number. |
HelpContext Property | Sets or returns a context ID for a topic in a Help File. |
HelpFile Property | Sets or returns a fully qualified path to a Help File |
Hour Function | Returns a whole number between 0 and 23, inclusive, representing the hour of the day. |
If…Then…Else Statement | Conditionally executes a group of statements, depending on the value of an expression. |
IgnoreCase Property | Sets or returns a Boolean value that indicates if a pattern search is case-sensitive or not. |
Imp Operator | Performs a logical implication on two expressions. |
Initialize Event | Occurs when an instance of the associated class is created. |
InputBox Function | Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns the contents of the text box. |
InStr Function | Returns the position of the first occurrence of one string within another. |
InStrRev Function | Returns the position of an occurrence of one string within another, from the end of string. |
Int Function | Returns the integer portion of a number. |
Integer Division Operator () | Divides two numbers and returns an integer result. |
Is Operator | Compares two object reference variables. |
IsArray Function | Returns a Boolean value indicating whether a variable is an array. |
IsDate Function | Returns a Boolean value indicating whether an expression can be converted to a date. |
IsEmpty Function | Returns a Boolean value indicating whether a variable has been initialized. |
IsNull Function | Returns a Boolean value that indicates whether an expression contains no valid data (Null). |
IsNumeric Function | Returns a Boolean value indicating whether an expression can be evaluated as a number. |
IsObject Function | Returns a Boolean value indicating whether an expression references a valid Automation object. |
Join Function | Returns a string created by joining a number of substrings contained in an array. |
LBound Function | Returns the smallest available subscript for the indicated dimension of an array. |
LCase Function | Returns a string that has been converted to lowercase. |
Locale ID (LCID) Chart | List of Locale ID’s and their associated values. |
Left Function | Returns a specified number of characters from the left side of a string. |
Len Function | Returns the number of characters in a string or the number of bytes required to store a variable. |
Length Property | Returns the length of a match found in a search string. |
LoadPicture Function | Returns a picture object. Available only on 32-bit platforms. |
Log Function | Returns the natural logarithm of a number. |
LTrim Function | Returns a copy of a string without leading spaces. |
Match Object | Provides access to the read-only properties of a regular expression match. |
Matches Collection | Collection of regular expression Match objects. |
Mid Function | Returns a specified number of characters from a string. |
Minute Function | Returns a whole number between 0 and 59, inclusive, representing the minute of the hour. |
Miscellaneous Constants | List of constants that don’t fit into any other category. |
Mod Operator | Divides two numbers and returns only the remainder. |
Month Function | Returns a whole number between 1 and 12, inclusive, representing the month of the year. |
MonthName Function | Returns a string indicating the specified month. |
MsgBox Constants | List of constants used with the MsgBox Function. |
MsgBox Function | Displays a message in a dialog box, waits for the user to click a button, and returns a value indicating which button the user clicked. |
Multiplication Operator (*) | Multiplies two numbers. |
Negation Operator (-) | Indicates the negative value of a numeric expression. |
Not Operator | Performs logical negation on an expression. |
Now Function | Returns the current date and time according to the setting of your computer’s system date and time. |
Nothing | Disassociates an object variable from any actual object. |
Null | Indicates that a variable contains no valid data. |
Number Property | Returns or sets a numeric value specifying an error. |
Oct Function | Returns a string representing the octal value of a number. |
On Error Statement | Enables error-handling. |
Operator Precedence | List showing the order of precedence for various operators used in VBScript. |
Option Explicit Statement | Forces explicit declaration of all variables in a script. |
Or Operator | Performs a logical disjunction on two expressions. |
Pattern Property | Sets or returns the regular expression pattern being searched for. |
Private Statement | Declares private variables and allocates storage space. |
PropertyGet Statement | Declares the name, arguments, and code that form the body of a Property procedure that gets (returns) the value of a property. |
PropertyLet Statement | Declares the name, arguments, and code that form the body of a Property procedure that assigns the value of a property. |
PropertySet Statement | Declares the name, arguments, and code that form the body of a Property procedure that sets a reference to an object. |
Public Statement | Declares public variables and allocates storage space. |
Raise Method | Generates a run-time error. |
Randomize Statement | Initializes the random-number generator. |
ReDim Statement | Declares dynamic-array variables, and allocates or reallocates storage space at procedure level. |
RegExp Object | Provides simple regular expression support. |
Rem Statement | Includes explanatory remarks in a program. |
Replace Function | Returns a string in which a specified substring has been replaced with another substring a specified number of times. |
Replace Method | Replaces text found in a regular expression search. |
RGB Function | Returns a whole number representing an RGB color value. |
Right Function | Returns a specified number of characters from the right side of a string. |
Rnd Function | Returns a random number. |
Round Function | Returns a number rounded to a specified number of decimal places. |
Run-time Errors | List VBScript run-time errors. |
RTrim Function | Returns a copy of a string without trailing spaces. |
ScriptEngine Function | Returns a string representing the scripting language in use. |
ScriptEngineBuildVersion Function | Returns the build version number of the scripting engine in use. |
ScriptEngineMajorVersion Function | Returns the major version number of the scripting engine in use. |
ScriptEngineMinorVersion Function | Returns the minor version number of the scripting engine in use. |
Second Function | Returns a whole number between 0 and 59, inclusive, representing the second of the minute. |
Select Case Statement | Executes one of several groups of statements, depending on the value of an expression. |
Set Statement | Assigns an object reference to a variable or property. |
SetLocale Function | Sets the global locale and returns the previous locale. |
Sgn Function | Returns an integer indicating the sign of a number. |
Sin Function | Returns the sine of an angle. |
Source Property | Returns or sets the name of the object or application that originally generated the error. |
Space Function | Returns a string consisting of the specified number of spaces. |
Split Function | Returns a zero-based, one-dimensional array containing a specified number of substrings. |
Sqr Function | Returns the square root of a number. |
StrComp Function | Returns a value indicating the result of a string comparison. |
String Constants | List of string constants. |
String Function | Returns a repeating character string of the length specified. |
StrReverse Function | Returns a string in which the character order of a specified string is reversed. |
Sub Statement | Declares the name, arguments, and code that form the body of a Sub procedure. |
Subtraction Operator (-) | Finds the difference between two numbers or indicates the negative value of a numeric expression. |
Syntax Errors | List VBScript syntax errors. |
Tan Function | Returns the tangent of an angle. |
Terminate Event | Occurs when an instance of the associated class is terminated. |
Test Method | Executes a regular expression search against a specified string. |
Time Function | Returns a Variant of subtype Date indicating the current system time. |
Timer Function | Returns the number of seconds that have elapsed since 12:00 AM (midnight). |
TimeSerial Function | Returns a Variant of subtype Date containing the time for a specific hour, minute, and second. |
TimeValue Function | Returns a Variant of subtype Date containing the time. |
Trim Function | Returns a copy of a string without leading or trailing spaces. |
Tristate Constants | Use them anywhere in your code to represent the values shown for each. |
True | Keyword that has a value equal to -1. |
TypeName Function | Returns a string that provides Variant subtype information about a variable. |
UBound Function | Returns the largest available subscript for the indicated dimension of an array. |
UCase Function | Returns a string that has been converted to uppercase. |
Value Property | Returns the value or text of a match found in a search string. |
VarType Constants | List of constants that define Variant subtypes. |
VarType Function | Returns a value indicating the subtype of a variable. |
VBScript Constants | Various categories of constants provided in VBScript. |
Weekday Function | Returns a whole number representing the day of the week. |
WeekdayName Function | Returns a string indicating the specified day of the week. |
While…Wend Statement | Executes a series of statements as long as a given condition is True. |
With Statement | Executes a series of statements on a single object. |
Xor Operator | Performs a logical exclusion on two expressions. |
Year Function | Returns a whole number representing the year. |
Language Element | Description |
Initialize Event | Occurs when an instance of the associated class is created. |
Terminate Event | Occurs when an instance of the associated class is terminated. |
Language Element | Description |
Abs Function | Returns the absolute value of a number. |
Array Function | Returns a Variant containing an array. |
Asc Function | Returns the ANSI character code corresponding to the first letter in a string. |
Atn Function | Returns the arctangent of a number. |
CBool Function | Returns an expression that has been converted to a Variant of subtype Boolean. |
CByte Function | Returns an expression that has been converted to a Variant of subtype Byte. |
CCur Function | Returns an expression that has been converted to a Variant of subtype Currency. |
CDate Function | Returns an expression that has been converted to a Variant of subtype Date. |
CDbl Function | Returns an expression that has been converted to a Variant of subtype Double. |
Chr Function | Returns the character associated with the specified ANSI character code. |
CInt Function | Returns an expression that has been converted to a Variant of subtype Integer. |
CLng Function | Returns an expression that has been converted to a Variant of subtype Long. |
Cos Function | Returns the cosine of an angle. |
CreateObject Function | Creates and returns a reference to an Automation object. |
CSng Function | Returns an expression that has been converted to a Variant of subtype Single. |
CStr Function | Returns an expression that has been converted to a Variant of subtype String. |
Date Function | Returns the current system date. |
DateAdd Function | Returns a date to which a specified time interval has been added. |
DateDiff Function | Returns the number of intervals between two dates. |
DatePart Function | Returns the specified part of a given date. |
DateSerial Function | Returns a Variant of subtype Date for a specified year, month, and day. |
DateValue Function | Returns a Variant of subtype Date. |
Day Function | Returns a whole number between 1 and 31, inclusive, representing the day of the month. |
Eval Function | Evaluates an expression and returns the result. |
Exp Function | Returns e (the base of natural logarithms) raised to a power. |
Filter Function | Returns a zero-based array containing subset of a string array based on a specified filter criteria. |
Fix Function | Returns the integer portion of a number. |
FormatCurrency Function | Returns an expression formatted as a currency value using the currency symbol defined in the system control panel. |
FormatDateTime Function | Returns an expression formatted as a date or time. |
FormatNumber Function | Returns an expression formatted as a number. |
FormatPercent Function | Returns an expression formatted as a percentage (multiplied by 100) with a trailing % character. |
GetLocale Function | Returns the current locale ID value. |
GetObject Function | Returns a reference to an Automation object from a file. |
GetRef Function | Returns a reference to a procedure that can be bound to an event. |
Hex Function | Returns a string representing the hexadecimal value of a number. |
Hour Function | Returns a whole number between 0 and 23, inclusive, representing the hour of the day. |
InputBox Function | Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns the contents of the text box. |
InStr Function | Returns the position of the first occurrence of one string within another. |
InStrRev Function | Returns the position of an occurrence of one string within another, from the end of string. |
Int Function | Returns the integer portion of a number. |
IsArray Function | Returns a Boolean value indicating whether a variable is an array. |
IsDate Function | Returns a Boolean value indicating whether an expression can be converted to a date. |
IsEmpty Function | Returns a Boolean value indicating whether a variable has been initialized. |
IsNull Function | Returns a Boolean value that indicates whether an expression contains no valid data (Null). |
IsNumeric Function | Returns a Boolean value indicating whether an expression can be evaluated as a number. |
IsObject Function | Returns a Boolean value indicating whether an expression references a valid Automation object. |
Join Function | Returns a string created by joining a number of substrings contained in an array. |
LBound Function | Returns the smallest available subscript for the indicated dimension of an array. |
LCase Function | Returns a string that has been converted to lowercase. |
Left Function | Returns a specified number of characters from the left side of a string. |
Len Function | Returns the number of characters in a string or the number of bytes required to store a variable. |
LoadPicture Function | Returns a picture object. Available only on 32-bit platforms. |
Log Function | Returns the natural logarithm of a number. |
LTrim Function | Returns a copy of a string without leading spaces. |
Mid Function | Returns a specified number of characters from a string. |
Minute Function | Returns a whole number between 0 and 59, inclusive, representing the minute of the hour. |
Month Function | Returns a whole number between 1 and 12, inclusive, representing the month of the year. |
MonthName Function | Returns a string indicating the specified month. |
MsgBox Function | Displays a message in a dialog box, waits for the user to click a button, and returns a value indicating which button the user clicked. |
Now Function | Returns the current date and time according to the setting of your computer’s system date and time. |
Oct Function | Returns a string representing the octal value of a number. |
Replace Function | Returns a string in which a specified substring has been replaced with another substring a specified number of times. |
RGB Function | Returns a whole number representing an RGB color value. |
Right Function | Returns a specified number of characters from the right side of a string. |
Rnd Function | Returns a random number. |
Round Function | Returns a number rounded to a specified number of decimal places. |
RTrim Function | Returns a copy of a string without trailing spaces. |
ScriptEngine Function | Returns a string representing the scripting language in use. |
ScriptEngineBuildVersion Function | Returns the build version number of the scripting engine in use. |
ScriptEngineMajorVersion Function | Returns the major version number of the scripting engine in use. |
ScriptEngineMinorVersion Function | Returns the minor version number of the scripting engine in use. |
Second Function | Returns a whole number between 0 and 59, inclusive, representing the second of the minute. |
SetLocale Function | Sets the global locale and returns the previous locale. |
Sgn Function | Returns an integer indicating the sign of a number. |
Sin Function | Returns the sine of an angle. |
Space Function | Returns a string consisting of the specified number of spaces. |
Split Function | Returns a zero-based, one-dimensional array containing a specified number of substrings. |
Sqr Function | Returns the square root of a number. |
StrComp Function | Returns a value indicating the result of a string comparison. |
String Function | Returns a repeating character string of the length specified. |
StrReverse Function | Returns a string in which the character order of a specified string is reversed. |
Tan Function | Returns the tangent of an angle. |
Time Function | Returns a Variant of subtype Date indicating the current system time. |
Timer Function | Returns the number of seconds that have elapsed since 12:00 AM (midnight). |
TimeSerial Function | Returns a Variant of subtype Date containing the time for a specific hour, minute, and second. |
TimeValue Function | Returns a Variant of subtype Date containing the time. |
Trim Function | Returns a copy of a string without leading or trailing spaces. |
TypeName Function | Returns a string that provides Variant subtype information about a variable. |
UBound Function | Returns the largest available subscript for the indicated dimension of an array. |
UCase Function | Returns a string that has been converted to uppercase. |
VarType Function | Returns a value indicating the subtype of a variable. |
Weekday Function | Returns a whole number representing the day of the week. |
WeekdayName Function | Returns a string indicating the specified day of the week. |
Year Function | Returns a whole number representing the year. |
Language Element | Description |
Clear Method | Clears all property settings of the Err object. |
Execute Method | Executes a regular expression search against a specified string. |
Raise Method | Generates a run-time error. |
Replace Method | Replaces text found in a regular expression search. |
Test Method | Executes a regular expression search against a specified string. |
Language Element | Description |
Call Statement | Transfers control to a Sub or Function procedure. |
Class Statement | Declares the name of a class. |
Const Statement | Declares constants for use in place of literal values. |
Dim Statement | Declares variables and allocates storage space. |
Do…Loop Statement | Repeats a block of statements while a condition is True or until a condition becomes True. |
Erase Statement | Reinitializes the elements of fixed-size arrays and deallocates dynamic-array storage space. |
Execute Statement | Executes one or more specified statements. |
ExecuteGlobal Statement | Executes one or more specified statements in the global namespace of a script. |
Exit Statement | Exits a block of Do…Loop, For…Next, Function, or Sub code. |
For…Next Statement | Repeats a group of statements a specified number of times. |
For Each…Next Statement | Repeats a group of statements for each element in an array or collection. |
Function Statement | Declares the name, arguments, and code that form the body of a Function procedure. |
If…Then…Else Statement | Conditionally executes a group of statements, depending on the value of an expression. |
On Error Statement | Enables error-handling. |
Option Explicit Statement | Forces explicit declaration of all variables in a script. |
Private Statement | Declares private variables and allocates storage space. |
PropertyGet Statement | Declares the name, arguments, and code that form the body of a Property procedure that gets (returns) the value of a property. |
PropertyLet Statement | Declares the name, arguments, and code that form the body of a Property procedure that assigns the value of a property. |
PropertySet Statement | Declares the name, arguments, and code that form the body of a Property procedure that sets a reference to an object. |
Public Statement | Declares public variables and allocates storage space. |
Randomize Statement | Initializes the random-number generator. |
ReDim Statement | Declares dynamic-array variables and allocates or reallocates storage space at procedure level. |
Rem Statement | Includes explanatory remarks in a program. |
Select Case Statement | Executes one of several groups of statements, depending on the value of an expression. |
Set Statement | Assigns an object reference to a variable or property. |
Sub Statement | Declares the name, arguments, and code that form the body of a Sub procedure. |
While…Wend Statement | Executes a series of statements as long as a given condition is True. |
With Statement | Executes a series of statements on a single object. |
Загрузить PDF
Загрузить PDF
VBScipt очень простой, но мощный язык программирования, который является родным для Windows. Он используется, главным образом, для создания веб-серверных приложений. VBScript встраивается в файлы HTML и является достаточно простым и прямолинейным. Обратите внимание, что VBScript отличается от Visual Basic, который используется для программирования для ПК.
-
1
Выберите хороший редактор кода. Разумеется, вы можете использовать Блокнот, но удобнее будет пользоваться специальным редактором с подсветкой синтаксиса языка VBScript.
-
2
Установите Internet Explorer. Internet Explorer является единственным браузером, который поддерживает VBScript, поскольку является продуктом Microsoft. Чтобы увидеть VBScript в действии, вам будет необходимо установить Internet Explorer.
- Поскольку Internet Explorer поддерживается только ОС Windows, лучше всего, если вы будете программировать на компьютере с ОС Windows.
-
3
Изучите основы языка VBScript. Есть несколько важных основ языка, которые будет полезно знать прежде, чем начать углубляться в программирование.
- Используйте ‘ (апостроф) для обозначения комментариев. Любая строка, начинающаяся с апострофа, рассматривается как комментарий и не обрабатывается скриптом. Использование комментариев помогает другим разработчикам и вам самим разобраться в том, что делает данный код.
- Используйте _ (нижнее подчеркивание), чтобы продолжить строку. Обычно конец строки обозначается просто переходом на следующую, но если она оказывается слишком длиной, вы можете просто использовать _ в конце незаконченной строки для обозначения того, что текущая строка продолжается на следующей строке.
Реклама
-
1
Создайте HTML страницу. VBScript существует в пределах HTML сайтов. Чтобы увидеть, как работает ваш VBScript, вам понадобится создать HTML-файл и отрыть его в Internet Explorer. Откройте редактор кода и введите следующий код:[1]
<html> <head> <title>VBScript Test</title> </head> <body> </body> </html>
-
2
Добавьте тэги VBScript. Создавая страницу с кодом VBScript, вам необходимо передать браузеру информацию о том, что далее идет скрипт. Вставьте в свой код такой HTML-тэг:
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> </script> </body> </html>
-
3
Используйте VBScript на сервере ASP. Если вы пишете скрипт VBScript для ASP-сервера, указать то, что далее начинается скрипт, вы можете при помощи специального тэга:
<html> <head> <title>VBScript Test</title> </head> <body> <% %> </body> </html>
Реклама
-
1
Вставьте команду Write. Эта команда отображает для пользователя содержимое. Когда вы используете эту команду, в браузере будет отображен назначенный текст.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> document.write() </script> </body> </html>
-
2
Добавьте текст, который должен быть отображен. В скобках добавьте текст, который необходимо отобразить на экране. Текст должен быть заключен в кавычки, чтобы обозначить его как строку.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> document.write("Hello World!") </script> </body> </html>
-
3
Откройте HTML файл в браузере. Сохраните код в формате .HTML. Откройте получившийся файл при помощи Internet Explorer. На странице простым текстом должно отобразиться Hello World!.
Реклама
-
1
Объявите переменные. Переменные позволяют хранить данные, с которыми вы сможете работать позже. Объявить переменные необходимо при помощи команды dim прежде, чем присвоить им какие-либо значения. Вы можете объявить несколько переменных сразу. Переменные должны начинаться с буквы и могут содержать до 255 символов латиницы и цифр. В нашем примере объявим переменную «age»:
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> dim age </script> </body> </html>
-
2
Присвойте переменным значения. Теперь, когда переменная объявлена, вы можете присвоить ей значение. Используйте знак равенства =, чтобы задать значение переменной. Вы можете использовать команду Write, чтобы отобразить переменную на экране и удостовериться в том, что все работает.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> dim age age = 30 document.write(age) </script> </body> </html>
-
3
Манипулирование переменными. Для работы с переменными вы можете использовать все математические операции. Эти операции записываются так же, как и любые математические операции. Все ваши переменные, включая те, в которые будет записываться результат всех манипуляций, должны быть предварительно объявлены.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> dim x dim y dim sum x = 10 y = 5 sum = x + y document.write(sum) 'the page will display "15" </script> </body> </html>
-
4
Создайте массив. Массив, по существу, представляет собой таблицу (строку), которая содержит более одного значения. Массив обрабатывается как одна переменная. Как и другие переменные, массивы тоже необходимо объявлять. Вы также должны указать количество переменных, которые могут храниться в массиве. Обратите внимание, что нумерация массива начинается с 0. Позже вы сможете обращаться к данным из массива.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> Dim names(2) Dim mother names(0) = "John" names(1) = "Jane" names(2) = "Pat" mother = names(1) </script> </body> </html>
-
5
Создайте двухмерный массив. Вы также сможете создавать многомерные массивы, чтобы хранить большее количество данных. Объявляя массив, вы будете должны указать количество рядов и столбцов, которые он содержит.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> Dim table(2,2) 'This will create a 3x3 table table(0,0) = "A" table(0,1) = "B" table(0,2) = "C" table(1,0) = "D" table(1,1) = "E" table(1,2) = "F" table(2,0) = "G" table(2,1) = "H" table(2,2) = "I" </script> </body> </html>
Реклама
-
1
Узнайте разницу между процедурами и «sub» и «function». В VBScript существует два вида процедур: sub (подпрограммы) и function (функции). Эти два типа процедур позволяют вашей программе производить определенные действия.[2]
- Процедуры Sub могут осуществлять действия, но не могут возвращать в программу значения.
- Процедуры Function могут вызывать другие процедуры, а также возвращать значения.
-
2
Напишите процедуру sub и вызовите ее. Вы можете использовать подпрограммы (sub), чтобы создавать задачи, которые ваша программа может вызвать позже. Используйте Sub и End Sub, чтобы добавить подпрограмму. Используйте Call, чтобы активировать подпроцедуру
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> Sub mysubproc() document.write("This was written in a sub procedure") End Sub Call mysubproc() 'This will display the message written in the sub procedure </script> </body> </html>
-
3
Создайте процедуру function. Функции позволяют выполнять простые команды и возвращать программе значения. Процедуры-функции и формируют основу и функциональность вашей программы. Используйте Function и End Function, чтобы обозначить содержимое функции.
<html> <head> <title>VBScript Test</title> </head> <body> <script language="vbscript" type="text/vbscript"> Function multfunction(x,y) multfunction = x*y End Function document.write(multfunction(4,5)) 'This will use your function and insert 4 and 5 into the x and y variables. 'The result will be printed on the screen. </script> </body> </html>
Реклама
Источники
Об этой статье
Эту страницу просматривали 16 382 раза.
Была ли эта статья полезной?
Содержание
- 1 Основы VBScript
- 1.1 Типы данных
- 1.2 Переменные
- 1.3 Область видимости и время жизни
- 1.4 Присваивание значения переменной
- 1.5 Скалярные переменные и массивы
- 1.6 Константы
- 1.7 Операторы
- 1.7.1 Арифметические операторы
- 1.7.2 Операторы сравнения
- 1.7.3 Операторы конкатенции
- 1.7.4 Логические операторы
- 1.7.5 Оператор присваивания
- 1.7.6 Очередность применения операторов
- 1.8 Условные выражения
- 1.8.1 Выражение If..Then..Else
- 1.8.2 Выражение Select..Case
- 1.9 Операторы цикла
- 1.9.1 Оператор Do..Loop
- 1.9.2 While..Wend
- 1.9.3 For..Next
- 1.9.4 For Each..Next
- 1.10 Процедуры
- 1.11 Выражение Execute
- 1.12 Классы VBScript
- 1.12.1 Определение свойств класса
- 1.12.2 Создание и уничтожение экземпляра VB класса
- 1.12.3 События Initialize и Terminate
- 2 Примечания
Основы VBScript
Типы данных
В языке VBScript используется единственный тип данных – Variant (Вариант), который позволяет хранить в переменной число, строку, дату, булевское значение, ссылку на объект и другую информацию. Определить тип содержимого переменной можно с помощью набора функций: VarType, TypeName, IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject, которые будут рассмотрены ниже. Тип содержащейся информации еще называется подтипом варианта. Полный список подтипов приведен в следующей таблице:
Подтип | Описание |
---|---|
Empty | Переменной не присвоено значение. При использовании неинициализированной переменной в числовых выражениях, будет подставляться 0, а в строковых – пустая строка. |
Null | Переменная не содержит данных. |
Boolean | Булевская переменная может принимать значения True, или False. |
Byte | Целое число в диапазоне от 0 до 255. |
Integer | Целое число в диапазоне от -32 768 до 32 767. |
Currency | Число с фиксированной точкой в диапазоне от -922 337 203 685 477.5808 до 922 337 203 685 477.5807. |
Long | Целое число в диапазоне от -2 147 483 648 до 2 147 483 647. |
Single | Число с плавающей точкой одинарной точности. Для отрицательных значений допустимый диапазон
от -3.402823E38 до -1.401298E-45. Для положительных – от 1.401298E-45 до 3.402823E38. |
Double | Число с плавающей точкой двойной точности. Для отрицательных значений допустимый диапазон от
-79769313486232E308 до -4.94065645841247E-324. Для положительных — от 4.94065645841247E-324 до 1.79769313486232E308. |
Date (Time) | Содержит число, представляющее дату в диапазоне от 1-го января 100 года, до 31 декабря 9999 года. |
String | Последовательность символов. Максимальная длина в районе 2-х миллиардов знаков. |
Object | Объект. |
Error | Номер ошибки. |
В зависимости от выражения, в котором участвует переменная, ее содержимое будет автоматически приведено к нужному типу. Рассмотрим такой пример:
Option Explicit Sub TestVBScript Dim A, B A = 5 B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub
Так как в выражении участвует числовая переменная A, интерпретатор преобразует значение переменной B из строки «12» в число и просуммирует их:
Изменим макрос так, чтобы переменная А тоже содержала строку:
Option Explicit Sub TestVBScript Dim A, B A = "5" B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub
Запустим его на выполнение. Теперь на экране появится результат слияния (конкатенции) двух строк, а не сумма их числовых представлений:
Во избежании путаницы с автоматическим приведением типов, рекомендуется использовать функции конверсии: CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr.
Если результатом выражения должно быть именно слияние строк, а не сумма их числовых представлений, то следует использовать оператор & вместо +.
Переменные
Переменная – это удобное символьное обозначение области памяти, где приложение хранит некоторые данные. В процессе выполнения приложения значение переменной может изменяться. Перед использованием переменную следует объявить с помощью оператора Dim.
Dim A
С помощью одного оператора можно объявить сразу несколько переменных, если перечислить их имена через запятую:
Dim Left, Right, Top, Bottom
При объявлении нет необходимости в указании типа данных, так как все переменные имеют тип Variant.
Если в первой строке текста скрипта не указано Option Explicit, то использовать переменные можно без объявления. Но, такой путь может привести к трудно выявимым ошибкам. Достаточно один раз ошибиться в написании имени переменной в тексте программы, чтобы получить непредсказуемый результат. Мы рекомендуем всегда указывать Option Explicit и объявлять переменные.
Имя переменной должно соответствовать следующим требованиям:
- Начинаться с символа латинского алфавита;
- Состоять только из символов латинского алфавита или из символов латинского алфавита и цифр;
- Не превышать 255 символов в длину;
- Быть уникальным в пределах своей области видимости.
Область видимости и время жизни
Область видимости переменной определяется тем, где она была объявлена. Если внутри тела процедуры[1], то такая переменная называется локальной и доступна только в пределах этой процедуры. Если переменная объявлена в тексте скрипта, то она будет видима для всех процедур или функций определенных в этом скрипте. Локальные переменные могут иметь одинакове имена, если объявлены в разных процедурах.
В дереве Проводника окна Редактора скрипт-объектов присутствует специальный раздел – Константы и переменные – для объявления глобальных переменных, видимых для всех скрипт-функций проекта.
Интерпретатор выделяет память для локальных переменных в момент их объявления и высвобождает по выходу из процедуры. Глобальные переменные существуют с момента их объявления и пока скрипт не закончит свое выполнение. Применительно к Гедымину это означает, что глобальные переменные существуют на протяжении всего времени выполнения программы.
Присваивание значения переменной
Значение объявленной переменной присваивается с помощью оператора =. Имя переменной указывается слева от оператора, новое значение – справа. Например:
A = 200 B = "Наименование"
Скалярные переменные и массивы
Переменная содержащая единственное значение называется скалярной. Иногда, возникает необходимость хранить несколько значений в одной переменной. В этом случае следует объявить массив. Синтаксис объявления идентичен объявлению скалярной переменной за тем исключением, что после имени в круглых скобках мы задаем размерность массива. Следующее объявление создаст массив из 12 элементов:
Dim Monthes(11)
В языке VBScript левая граница индекса массива всегда 0. Таким образом размер массива вычисляется, как число указанное в скобках плюс один. При присваивании значения элементу массива следует указать его индекс в круглых скобках:
Monthes(0) = "Январь" Monthes(1) = "Февраль" Monthes(2) = "Март" ... Monthes(10) = "Ноябрь" Monthes(11) = "Декабрь"
Аналогично, при обращении к значению элемента мы используем его индекс:
MonthName = Monthes(5)
Массив не обязательно должен быть одномерным. VBScript позволяет нам задать до 60 размерностей при объявлении массива. Например, следующий оператор создаст двумерный массив из 12 строк и двух колонок [2]:
Dim MonthDays(11, 1)
При обращении к элементам многомерного массива следует указывать все индексы:
MonthDays(0, 0) = "Январь" MonthDays(0, 1) = 31 MonthDays(1, 0) = "Февраль" MonthDays(1, 1) = 28 ...
Выше мы объявляли массивы, размер которых не меняется в процессе работы программы. Если заранее не известно сколько элементов понадобится, то можно объявить динамический массив:
Dim A()
Перед использованием следует установить размер динамического массива с помощью оператора ReDim:
ReDim A(25)
В процессе выполнения можно вызывать оператор ReDim многократно, каждый раз изменяя размер массива. Опция Preserve сохраняет значения элементов массива при изменении размера. Например, следующий код увеличит объявленный выше массив на пять элементов, оставив существующие нетронутыми:
ReDim Preserve A(30)
Помните, что при уменьшении размера массива, значения удаленных элементов будут безвозвратно утеряны.
С помощью оператора Erase можно очистить элементы фиксированного массива или освободить память, занимаемую динамическим массивом.
Dim A ReDim A(25) ... Erase A
Константы
Правилом хорошего тона является объявление констант для многократно используемых в тексте программы значений. Грамотно присвоенное имя константы улучшает читабельность, а само использование — упрощает процесс внесения изменений в код. В отличие от переменных, значение константы нельзя изменить в процессе выполнения программы. Создание константы происходит с помощью оператора Const:
Const CountryName = "Belarus" Const CountryCode = 375
Несколько констант могут быть объявлены в рамках одного оператора, через запятую. Как и переменная, константа обладает своей областью видимости в зависимости от того, где (в процедуре или за ее пределами) и как (Public или Private) она была объявлена. Константы, созданные оператором Const без указания Public или Private являются общедоступными по-умолчанию.
В дереве Проводника окна Редактора скрипт-объектов присутствует специальный раздел – Константы и переменные – для объявления глобальных констант, видимых для всех скрипт-функций проекта.
Значения строковых констант заключаются в двойные кавычки.
Значения типа Дата следует обрамлять символами решетки (#) и использовать американский формат: месяц/день/год. Например:
Const Public IndependenceDay = #03/25/1918#
Во избежание путаницы между константами и переменными рекомендуется использовать единый префикс для всех констант, например «con», или набирать имя константы в верхнем регистре.
Для облегчения труда программиста VBScript содержит набор предопределенных констант.
Операторы
Операторы VBScript подразделяются на пять категорий: арифметические, сравнения, слияния, логические и присваивания.
Арифметические операторы
Оператор | Пример использования | Описание |
---|---|---|
^ | number ^ exponent | Возводит number в степень exponent. Number может быть меньше нуля только в случае целочисленной степени. Если один из операндов Null, все выражение принимает значение Null. Если несколько возведений в степень выполняются подряд, результат вычисляется слева направо. |
* | number1 * number2 | Произведение двух чисел. Если операнд имеет значение Empty, то он принимается равным нулю. Если хотя бы один из операндов Null, все выражение принимает значение Null. |
/ | number1 / number2 | Вещественное деление двух чисел. Для операндов действуют правила аналогично оператору умножения. |
number1 number2 | Целочисленное деление. Перед вычислением оба операнда приводятся к типу Byte, Integer или Long. В остальном действуют правила как для оператора деления. | |
Mod | number1 Mod number2 | Остаток от целочисленного деления. Приведение операндов к целому, а также правила обращения с Empty и Null, как у целочисленного деления. |
+ | expression1 + expression2 | Если оба операнда числа, результатом является их арифметическая сумма. Если оба операнда строки – слияние (конкатенция) двух строк. Если один операнд число, а другой строка, то строковый операнд будет преобразован в число и прибавлен к числовому. Если хотя бы один из операндов Null, все выражение принимает значение Null. Если оба операнда Empty, результат имеет целочисленное значение 0. Если только один оператор Empty, в качестве результата возвращается значение второго операнда. |
— | number1 – number2 или — number | В первом случае возвращает разность двух чисел. Во втором – инвертирует знак числа. Правила для операндов со значениями Null и Empty, как для оператора умножения. |
Операторы сравнения
Формат использования операторов сравнения:
result = expression1 comparisonoperator expression2
где используются следующие операторы сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно).
В зависимости от типов и значений операндов, сравнение осуществляется следующим образом:
Если | То |
---|---|
Оба операнда числа. | Выполняется сравнение двух чисел. |
Оба операнда строки. | Выполняется сравнение двух строк. |
Один из операндов число, а второй строка. | Строковый операнд приводится к числу и выполняется сравнение двух чисел. |
Один из операндов Empty, а второй число. | Операнд со значением Empty принимается равным 0. |
Один из операндов Empty, а второй строка. | Операнд со значением Empty принимается равным пустой строке «». Осуществляется сравнение двух строк. |
Оба операнда Empty. | Операнды считаются равными. |
Хотя бы один из операндов Null. | Результат принимает значение Null. |
Специальный оператор Is применяется для сравнения двух объектных переменных и возвращает Истину, если обе переменных ссылаются на один и тотже экземпляр объекта.
Операторы конкатенции
В данной категории находятся два оператора: + и &. Первый подробно описан в разделе «Арифметические операторы» выше. Рассмотрим использование оператора &.
result = expression1 & expression2
Если операнд не является строкой, он приводится к строковому типу. Если оба операнда Null, то результат также принимает значение Null, однако, в отличие от остальных операторов, если только один операнд Null, то он принимается равным пустой строке. Операнд, имеющий значение Empty, также воспринимается как пустая строка «».
Логические операторы
VBScript предоставляет нам следующие логические операторы:
- Логическое отрицание, инверсия (Not);
- Логическое умножение, коньюнкция (And);
- Логическое сложение, дизьюнкция (Or);
- Логическое исключение (Xor);
- Логический эквивалент (Eqv);
- Логическая импликация (Imp).
В качестве операндов логических операторов могут выступать булевские выражения или числовые значения. В первом случае результатом будет булевская константа, во втором – число. В зависимости от оператора подача на вход одного или двух значений Null может приводить к Null результату. Оператор Not является унарным и возвращает логическое отрицание выражения. Над числовым операндом оператор Not производит побитовую инверсию. Остальные логические операторы являются бинарными. В таблице ниже приведены результаты выполнения каждого из операторов в зависимости от значения операндов Exp1 и Exp2:
Exp1 | Exp2 | And | Or | Xor | Eqv | Imp |
---|---|---|---|---|---|---|
True | True | True | True | False | True | True |
True | False | False | True | True | False | False |
False | True | False | True | True | False | True |
False | False | False | False | False | True | True |
True | Null | Null | True | Null | Null | Null |
False | Null | False | Null | Null | Null | True |
Null | True | Null | True | Null | Null | True |
Null | False | False | Null | Null | Null | Null |
Null | Null | Null | Null | Null | Null | Null |
В жизни чаще всего используются операторы And и Or и гораздо реже – Xor. Нам не приходилось сталкиваться с использованием на практике операторов Eqv и Imp. Если вам тяжело разбираться с приведенной выше таблицей резюмируем действие данных операторов:
- And принимает значение Истина только если оба операнда Истина. В любом другом случае – это либо Ложь, либо Null.
- Or принимает значение Истина, если хотябы один из операндов Истина.
- Xor принимает значение Истина, если значения операндов различаются и Ложь, если они одинаковы.
При побитовом выполнении над числовыми операндами результат логического оператора определяется по следующей таблице:
Exp1 | Exp2 | And | Or | Xor | Eqv | Imp |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 1 | 1 |
Оператор присваивания
Оператор присваивания (=) подробно описан в разделе «Переменные».
Очередность применения операторов
Если выражение содержит несколько операторов, то они применяются в соответствии с установленным порядком, который называется приоритетом операторов. Изменить порядок по-умолчанию можно с помощью круглых скобок. Выражение внутри скобок всегда вычисляется в первую очередь.
В выражении, содержащем операторы разных категорий, арифметические действия выполняются в первую очередь, затем выполняются операторы сравнения и, в последнюю очередь, — логические операторы. Все операторы сравнения имеют одинаковый приоритет и вычисляются слева-направо. Арифметические и логические операторы вычисляются в следующем порядке:
- Возведение в степень (^);
- Смена знака числа, унарный минус (-);
- Умножение (*) и деление (/);
- Целочисленное деление ();
- Остаток от целочисленного деления (Mod);
- Сложение (+) и вычитание (-);
- Слияние строк (&).
Если умножение и деление встречаются в одном выражении, то операции выполняются в порядке следования слева-направо. Аналогичное правило действует в случае одновременного присутствия операторов сложения и вычитания.
Оператор слияния строк (&) не является арифметическим и по приоритету располагается между арифметическими операторами и операторами сравнения.
Очередность для логических операторов установлена следующая:
- Логическое отрицание, инверсия (Not);
- Логическое умножение, коньюнкция (And);
- Логическое сложение, дизьюнкция (Or);
- Логическое исключение (Xor);
- Логический эквивалент (Eqv);
- Логическая импликация (Imp).
Условные выражения
Условные выражения применяются для управления порядком выполнения команд программы и позволяют организовать переходы (ветвления) и повторения команд. Как правило, операторы сравнения используются вместе с условными выражениями.
Выражение If..Then..Else
Выражение условного перехода If позволяет выполнить ту или иную группу команд в зависимости от результата логического выражения или значения булевской переменной.
Для выполнения единственной команды при выполнении заданного условия используется однострочный синтаксис выражения:
Dim S If DatePart("w", Now) = vbMonday Then S = "Понедельник" Application.MessageBox S, "", vbOkOnly
Обратите внимание, что секция Else в этом случае опущена. Для выполнения группы операторов следует заключить их между ключевыми словами Then и End If.
Dim S If DatePart("w", Now) = vbMonday Then S = "Сегодня понедельник" Application.MessageBox S, "", vbOkOnly End If
Если при выполнении условия требуется выполнить один код, а при невыполнении – другой, то используется синтаксис выражения с секцией Else:
Dim S If DatePart("w", Now) = vbMonday Then S = "Сегодня понедельник" Else S = "Сегодня не понедельник" End If Application.MessageBox S, "", vbOkOnly
При необходимости выбора из нескольких альтернатив подойдет синтаксис с конструкцией ElseIf:
Dim S, D D = DatePart("w", Now) If D = vbMonday Then S = "Понедельник" ElseIf D = vbTuesday Then S = "Вторник" ElseIf D = vbWednesday Then S = "Среда" ... End If Application.MessageBox S, "", vbOkOnly
Выражения If могут быть вложенными:
Dim S, D D = DatePart("w", Now) If D = vbMonday Then S = "Понедельник" Else If D = vbTuesday Then S = "Вторник" Else If D = vbWednesday Then S = "Среда" Else ... End If End If End If
Хотя количество секций ElseIf в условном выражении не ограничено, интенсивное их использование может привести к запутанному, неудобочитаемому коду. В случае выбора одной альтернативы из множества возможных в зависимости от значения некоторого селектора рекомендуется использовать выражение Select Case.
Выражение Select..Case
Перепишем пример с днями недели с использованием выражения выбора:
Dim S Select Case DatePart("w", Now) Case vbMonday S = "Понедельник" Case vbTuesday S = "Вторник" Case vbWednesday S = "Среда" ... Case Else Err.Raise 32000, "", "Неизвестный день недели" End Select
Так как выражение селектора вычисляется только один раз, использование Select..Case приводит к более эффективному коду.
Рекомендуется всегда использовать секцию Case Else для отлавливания некорректных или необработанных значений селектора.
Операторы цикла
Довольно часто возникает ситуация, когда код требуется запустить повторно. Для этого следует написать оператор цикла, который повторяет определенные команды снова и снова. Операторы цикла используются во многих ситуациях: при вычислении итоговой суммы по списку чисел, перемещении по записям набора данных или для запуска блока кода для нескольких объектов. Существует несколько циклов, описанных в следующих разделах. Некоторые из них выполняются, пока условие имеет значение Истина, некоторые – пока Ложь. И, наконец, есть такие, которые выполняются заданное число раз.
Оператор Do..Loop
Данный оператор предназначен для выполнения группы команд пока заданное условие Истинно или до тех пор, когда оно не станет Истинным. Проверка условия может осуществляться как в начале цикла:
Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop
так и в конце:
Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
Команда Exit Do может встречаться неограниченное число раз в теле цикла. Обычно она используется вместе с условным выражением If..Then и позволяет передать управление на оператор, следующий непосредственно за циклом. При использовании Exit Do внутри вложенного цикла, управление перейдет во внешний цикл.
Следующий код позволяет заменить игральный кубик:
Dim Resp, Num Do Num = Int(6 * Rnd + 1) Resp = Application.MessageBox(Num & " Еще число?", "",_ vbYesNo or vbQuestion) Loop Until Resp = vbNo
While..Wend
Представляет собой усеченную версию оператора Do..Loop и позволяет выполнять группу команд пока условие Истинно. Синтаксис оператора:
While condition [statements] Wend
Обратите внимание, что Exit Do не действует внутри данного цикла. Циклы While..Wend могут быть вложенными.
For..Next
Данный цикл повторяет заданный набор команд указанное число раз. Синтаксис оператора имеет вид:
For counter = start To end [Step step] [statements] [Exit For] [statements] Next
Перед стартом цикла переменной counter присваивается значение start. Далее проверяется выполнение условия counter <= end, при step >= 0, или counter >= end, при отрицательном шаге. После выполнение блока команд переменная counter увеличивается на значение step и все повторяется сначала.
Изменение счетчика в теле цикла не запрещено, но настоятельно не рекомендуется, так как затрудняет понимание логики программы и ее отладку.
Exit For может встречаться в теле цикла произвольное число раз. Циклы могут быть вложенными. Например, такой цикл инициализирует трехмерный массив:
Dim A(9, 9, 9) Dim I, J, K For I = 0 To 9 For J = 0 To 9 For K = 0 To 9 A(I, J, K) = 1 Next Next Next
For Each..Next
Оператор цикла For Each..Next повторяет заданный набор команд для каждого элемента массива или коллекции и имеет следующий синтаксис:
For Each element In group [statements] [Exit For] [statements] Next
Цикл выполняется, если в массиве или коллекции присутствует хотябы один элемент. Exit For может встречаться в теле цикла произвольное количество раз.
Проиллюстрируем использование For Each..Next на примере следующего кода, который выводит на экран список файлов из корневого каталога диска с:
Dim fso, f, f1, fc, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder("c:") Set fc = f.Files For Each f1 in fc s = s & f1.name & vbNewLine Next Application.MessageBox s, "Файлы на c:", vbOkOnly
Процедуры
Для экономии памяти и структурирования программы, фрагмент кода, вызываемый многократно в разных местах, может быть оформлен ввиде процедуры. В языке VBScript существуют два вида процедур: подпрограммы (Sub) и функции (Function). Подпрограмма – это последовательность операторов, обрамленная ключевыми словами Sub и End Sub. Подпрограмма может принимать на вход параметры, но не возвращает значения. Функция – последовательность операторов, заключенная между Function и End Function, — возвращает результат и поэтому может быть использована в выражении. Каждая процедура должна иметь имя, уникальное в пределах модуля. Имена процедур, объявленных в глобальном модуле, должны быть уникальны в рамках всего проекта.
Определение подпрограммы и функции имеет следующий синтаксис:
[Public [Default] | Private] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub
[Public [Default] | Private] Function name [(arglist)] [statements] [Exit Function] [statements] End Function
Public процедуры являются глобальными и доступны во всех скриптах программы. Private процедуры доступны только в том скрипте, где они были объявлены. Если не указано иное, объявленная процедура является общедоступной. Ключевое слово Default может быть использовано только в теле класса и служит для указания метода по-умолчанию этого класса.
Список параметров имеет следующий синтаксис:
[ByRef | ByVal] varname [, ...]
Параметры могут передаваться по значению (ByVal) или по ссылке (ByRef). По-умолчанию все параметры передаются по значению. Константы, результаты вычисления выражений могут быть переданы только по значению. Изменение параметра, переданного по ссылке, приведет к изменению значения наружной переменной. Поясним передачу параметров внутрь процедуры на следующем примере:
Sub DoCalculation(ByRef A, ByVal B, ByVal C) A = C * 2 B = C / 2 End Sub Sub TestVar Dim V1, V2 V1 = 1 V2 = 2 DoCalculation V1, V2, 10 ' После выполнения процедуры DoCalculation ' V1 = 20 ' V2 = 2 End Sub
Переменные, объявленные внутри тела процедуры, являются локальными и уничтожаются по завершении ее выполнения. Значения локальных переменных не сохраняются.
Список параметров указывается в круглых скобках при вызове функции или при вызове подпрограммы с помощью оператора Call[3]. Так, вызов процедуры DoCalculation в приведенном выше примере мы могли написать следующим образом:
Call DoCalculation(V1, V2, 10)
Выражение Execute
Классы VBScript
VBScript позволяет создавать новые классы, которые в дальнейшем мы будем называть VB классами. Вообще говоря, полноценными классами в понимании объектно-ориентированного программирования они не являются, поскольку не поддерживают наследование и, соответственно, полиморфизм. Так что из трех китов, на которых базируется объектно-ориентированная парадигма остается только инкапсуляция — возможность объединять в рамках одной сущности данные и методы.
Определение класса осуществляется с помощью следующей конструкции:
Class name statements End Class
где name — это имя класса, а statements — это одно или несколько определений переменных, свойств, процедур или функций, называемых так же членами класса. Обратите внимание, что в отличие от Delphi, где код определения класса содержит только объявления процедур и функций, в VB классе код членов прописывается прямо в тексте класса.
Члены класса могут быть объявлены как Private или Public. Первые видны только внутри кода данного класса, вторые же доступны как для внутреннего кода, так и снаружи. Если переменная или функция (процедура) не содержат явного определения Public или Private, то они считаются общедоступными. Процедуры или функции объявленные как Public внутри блока класса становятся методами данного класса.
Переменные, объявленные как общедоступные, становятся свойствами класса наравне со свойствами объявленными непосредственно с помощью конструкций Property Get, Property Let, Property Set.
Определение свойств класса
Выше мы уже говорили о том, что поля класса явно или не явно объявленные как Public, становятся его свойствами. Кроме этого, создать свойство класса можно определив специальные функции для считывания значения свойства (Property Get), а также для его присвоения (Property Let или Property Set).
Синтаксис определения таких функций следующий:
[Public [Default] | Private] Property Get name [(arglist)] [statements] [[Set] name = expression] [Exit Property] [statements] [[Set] name = expression] End Property [Public | Private] Property Let name ([arglist,] value) [statements] [Exit Property] [statements] End Property [Public | Private] Property Set name([arglist,] reference) [statements] [Exit Property] [statements] End Property
Определив только одну функцию, считывания или присвоения, можно создать свойство, соответственно, только для чтения или записи. Процедура Property Let используется для присвоения простых типов данных, а Property Set для передачи ссылки на объект. Обратите внимание, что все три функции могут принимать на вход произвольный список параметров. Таким образом можно организовать, например, свойства-массивы, передавая в качестве аргумента индекс элемента.
Создание и уничтожение экземпляра VB класса
Создание экземпляра VB класса осуществляется с помощью оператора New.
Dim X Set X = New classname
Уничтожение ранее созданного экземпляра происходит автоматически по завершении блока кода, где была объявлена соответсвующая переменная и при условии, что на нее нет внешних ссылок. Если необходимо уничтожить экземпляр вручную, то необходимо присвоить значение Nothing переменной.
‘ объявление переменной и создание экземпляра класса Dim X Set X = New classname ... ‘ использование экземпляра класса ... ‘ уничтожение экземпляра класса Set X = Notning ...
События Initialize и Terminate
Событие Initialize происходит при создании экземпляра класса, а Terminate — при его уничтожении. Разработчик может определить свои обработчики данных событий. Ниже приведен пример использования событий создания и удаления объекта:
Class TestClass ' Определение обработчика события Initialize. Private Sub Class_Initialize MsgBox("TestClass started") End Sub ' Определение обработчика события Terminate. Private Sub Class_Terminate MsgBox("TestClass terminated") End Sub End Class ' Создание экземпляра класса TestClass. ' На экран будет выведено сообщение "TestClass started" Set X = New TestClass ' Уничтожение экземпляра. ' На экран будет выведено сообщение "TestClass terminated" Set X = Nothing
Примечания
- ↑ Очевидно, что сказанное в раной мере применимо и к функциям.
- ↑ При объявлении двумерного массива первое число всегда задает количество строк, а второе – колонок.
- ↑ Здесь авторы VBScript отличились своей непоследовательностью. Допускается использование круглых скобок без оператора Call при вызове процедуры с единственным параметром.
Моховой Алексей Все примеры скриптов действуют только в MSIE 3.0 и выше! ПредисловиеЯ не ошибусь, если назову Бейсик (BASIC — Begginners Allpurpose Symbolic Instruction Code, т.е Как это не прискорбно для ярых противников Кроме Java, MSIE3.0 (и выше), может Cравнение VBScript и JavaScriptПрежде чем начинать познавать VBScript, давайте сравним две одинаковые, простые программы на JS и VBS. Это
Да, как видно, различий практически нет. JS поддерживает только функции, VBS и функции От QuickBasic до VBscript — один шагНачнем изучение не стандартным подходом. Обычно сначала все пишут программу, выводящую на экран
Поставим задачу, написать программу, которая бы случайным образом загадывала число от 1 до 100, и Программа на обычном Бейсике: 10 CLS : RANDOMIZE 20 a = INT ( RND(1)*100+1 ) : p = 1 30 PRINT "Загадано число от 1 до 100, угадайте его:)" 40 PRINT "Ваш вариант"; 50 INPUT v 60 IF a > v THEN PRINT "Загаданное число больше" : p = p + 1 : GOTO 40 70 IF a < v THEN PRINT "Загаданное число меньше" : p = p + 1 : GOTO 40 80 IF a = v THEN PRINT "Ура! Вы победили за";p;"ходов" 90 END Как видите, такая программа пошла бы даже на БК0010:) Я даже оставил ненавистные операторы GOTO (интересно, об них 10 очистка экрана и включение генератора случайных чисел. 20 переменной "a" присваивается целое случайное значение от 1 до 100, счетчику числа попыток присваивается значение=1. 30, 40 выводится сообщение. 50 ввод Вашего варианта "v". 60 если загаданное число больше Вашего варианта, то выводится сообщение, на единицу увеличивается счетчик попыток и программа отправляется на строку 40. 70 если загаданное число меньше Вашего варианта, то выводится сообщение, на единицу увеличивается счетчик попыток и программа отправляется на строку 40. 80 Если числа совпадут то выводится поздравление, кстати, по идее, проверку этого условия можно и опустить. 90 THE END Код типичной страницы со скрипт программой будет <html> <head> <title>Угадай число</title> </head> <body bgcolor="white" text="black"> < ... html код формы взаимодействия с VB программой ... > <script language="VBscript"> ... код программы ... </script> </body> </html> Итак, напишем программу реализующую заданные условия с помощью VBscript Нажмите на кнопку «Загадать число» и угадайте его:) КОД ПРОГРАММЫ:<FORM NAME=ugadai> <INPUT TYPE="button" NAME="begin" VALUE="Загадать число"><BR><BR> Ваш вариант:<BR> <INPUT TYPE="text" NAME="chislo"> <BR> <INPUT TYPE="button" NAME="but" VALUE="Enter"> </FORM> <!--******************* угадай число ************************--> <script language="vbscript"><!-- dim a ' определяем переменные dim p dim v sub begin_onclick ' процедура срабатывающая при нажатии (событие onclick) ' кнопки с именем begin randomize ' включение генератора случайных чисел a=int(rnd(1)*100+1) ' присваивание переменной (a) случайного значения p = 1 ' обнуление счетчика alert "число загадано" ' вывод сообщения в отдельном окне end sub ' конец процедуры sub but_onclick ' процедура срабатывающая при нажатии (событие onclick) кнопки с именем but v = document.ugadai.chislo.value ' переменной (v) присваивается значение ' содержащееся в поле ввода формы ' путь: документ (просто эта html страница).форма с именем ugadai. ' объект- поле для ввода с именем chislo. свойство value v=cint(v) ' поскольку поле для ввода содержит текстовую ' информацию, то переменную (v) надо преобра- ' зовать в целочисленный тип (функция cint) if a > v then alert "загаданное число больше, попробуйте еще" p = p + 1 end if if a < v then alert "загаданное число меньше, попробуйте еще" p = p + 1 end if if a = v then document.write"<center>Победа за "&p&" ходов.</center>" end if ' оператор document.write выводит содержащуюся ' в кавычках информацию в новое окно броузера ' как html код. end sub --></script> Если вдуматься и внимательно изучить приведенный код, то думается многое станет <Script language="VBscript"><!-- Sub window_onload Alert "Добро пожаловать на мою домашнюю страницу!" end sub --></Script> При загрузке документа появится окошко с данной надписью и кнопкой ОК Событие onmouseover — возникает при наведении указателя мыши на гипер ссылку. Наведите на эту ссылку указатель мыши Пример: <a href="http://wanderfly.da.ru/" name="link"> Наведите на эту ссылку указатель мыши</a> <script language="vbscript"><!-- sub link_onmouseover alert "ссылка" end sub --></script> Разумеется, данный пример Вы можете использовать только как шутку на ссылку «xxx», потому что нажать на нее Каков полный синтаксис операторов указывающих как «добраться» до данных в поле ввода? x = top.имя_фрейма.document.имя_формы.имя_объекта_text_box.value
Подведем первые итоги. VBscript перенял от обычного Бейсика большинство операторов и функций (математических, Справочная информация. Некоторые операторы и функцииЧтобы Вам было легче экспериментировать в написании скриптов, приведем основные операторы и функции
Операторы работы с массивами.
Операторы присваивания.
Комментарии.
Константы Boolean.
Функции.
Операторы используемые в выражениях Привожу просто список, надеюсь все и так ясно: Текстовые Функции
Ветвление и циклы
Oбъявление функций и процедур
Как вызвать сценарий в VBscriptВеб страница с активным содержимым, всегда делится как бы на две части: Первая, это Рассмотрим основные приемы вызова сценариев, или процедур. Сценарий вызываемый неявно: <html> <head> <script language="VBScript"> Sub but_onclick Alert "Привет пиплы:)" End sub </script> </head> <body> <form> <input type="button" name="but"> </form> </body> </html> Такой способ, по моему мнению, самый простой. Указываем имя оператором Вызов сценария определяемый в элементе управления: <html> <head> <script language="VBScript"> Sub scenariy Alert "Привет пиплы:)" End sub </script> </head> <body> <form> <input type="button" name="but" _ onclick="scenariy" language="VBScript"> </form> </body> </html> Такой способ обрадует приверженцев Java Script. Среди его преимуществ, перед первым Автоматический вызов сценария: <html> <body> <script language="VBScript"> Alert "Привет пиплы" </script> </body> </html> Код программы в этом случае выполнится сразу после загрузки документа. Вызов из другой процедуры: <html> <head> <script language="VBScript"> Sub but_onclick Call butalert("Привет пиплы") End Sub Sub butalert(a) Alert a End Sub </script> </head> <body> <form> <input type="button" name="but" _ onclick="scenariy" language="VBScript"> </form> </body> </html> Все способы, кроме автоматического вызова сценария, чисто визуально будут выглядеть так: Основные типы данных VBscriptНаверное, те кто знаком со «старым» бейсиком, еще помнят, что для обозначения <Script language="VBscript"> sub summa summatext1=document.formasum.summa1.value summatext2=document.formasum.summa2.value alert summatext1+summatext2 end sub </Script> Поэтому надо сделать так, чтобы переменные summatext1 и summatext2 были <Script language="VBscript"> sub summa summatext1=Cint(document.formasum.summa1.value) summatext2=Cint(document.formasum.summa2.value) alert summatext1+summatext2 end sub </Script> Подтипы данных VARIANT.
Некоторые правила VBscriptВ заключении следует упомянуть некоторые основные приемы при написании кода скрипта. Если код не умещается в одной строке, то можно использовать символ продолжения строки: if a=1 and b=2 or c=3 then alert a можно написать как if a=1 _ and b=2 _ or c=3 _ then alert a Для «склеивания» двух численных переменных лучше использовать знак «&» чем «+», т.е. Код сценария желательно, на всякий случай, заключать в теги комментария ЗаключениеЯ уже говорил, что моей задачей не было рассказать все и вся про VBscript, При большой фантазии, на VBscript можно создать и полноценные приложения, |