Урок 1 по VBScript: Основы языка

Язык VBScript (Visual  Basic Scripting  Edition) является упрощенной версией языка Visual Basic, он является разработкой компании Microsoft. Пожалуй VBScript – лучший способ начать нелегкий путь программиста, так как знание его синтаксиса позволяет в будущем с легкость разобраться в таких расширениях как Visual Basic или Visual Basic for  Applications  (VBA). Как и для языка Jscript, все команды сценария выполняет сервер Windows Script Host, который входит в состав операционной системы Windows. Все сценарии на языке VBScript сохраняются под расширением vbs. Прежде чем углубляться в глубь, стоит определится с некоторыми правилами:

Для комментирования строки кода используется оператор REM или одинарная кавычка (‘), например:

REM Это комментарий
'Это тоже комментарий

Для переноса строки одной строки на несколько строк используется символ подчеркивания (_):

WScript.Echo "Строка 1 и" &_
" Строка 2"

Все строковые значения должны заключаться в двойные кавычки («»)

Вы также можете прописать несколько операторов в одной строке используя двоеточие (:), например:

WScript.Echo "Проверка 1" : WScript.Echo "Проверка 2"

Сам язык VBScript нечувствителен к регистру букв.

Пользователю предоставляется возможность объявлять собственные процедуры и функции.

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

Sub MyProcedure(Param1, Param2)
Dim Sum
      Sum= Param1+Param2
End Sub

Если процедура не имеет параметров, то в скобках после имени ничего ука­зывать не нужно:
Sub MyProcedure()

End Sub

Вызывать процедуру из сценария можно двумя способами. Во-первых, мож­но просто написать имя и указать через пробел список передаваемых параметров, например: MyProcedure 3,10. Во-вторых, можно использовать специальный оператор Call, при этом спи­сок параметров обязательно должен быть заключен в круглые скобки: Call MyProcedure(3,10)

Для определения функции, т. е. подпрограммы, которая возвращает опреде­ленное значение, применяется конструкция Function … End Function. Как и при описании процедур, после названия функции в круглых скобках указывается список ее параметров, например:

Function MyFunction(Param1, Param2) … End Function

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

Function MyFunction(Param1, Param2)
Dim Sum
Sum = Paraml+Param2
MyFunction = Sum
End Function

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

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

Dim а
 а = MyFunction(3,5)

Как и в многих других языках программирования, язык VBscript позволяет использовать в сценариях регулярные выражения. Для этого используется объект VBScript.RegExp, он предоставляет регулярные выражения, в частности свойства и методы, которые позволяют видоизменять строку по заданному шаблону (pattern) или производить замену (vbscript replace) в той или иной строке.

Узнать БОЛЬШЕ из видео-урока:

Свойства

Global  — возвращает булево значение – TRUE (произвести шаблонный поиск по всему тексту) или FALSE (произвести шаблонный поиск до первого соответствия). По умолчанию стоит FALSE. Чтение и запись. Пример на VBScript:

' ***************************
' primer_1.vbs
' ***************************
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Global = False
Result = RegExp.Replace("test", "12")
' Получим строку 12test
MsgBox Result
RegExp.Global = True
Result = RegExp.Replace("test", "12")
' Получим строку 12t12e12s12t12
MsgBox Result

IgnoreCase  — возвращает булево значение — TRUE (регистр символов не будет учитываться) FALSE (регистр символов будет учитываться). По умолчанию стоит False. Чтение и запись.

Пример:

' ***************************
' primer_2.vbs
' ***************************
Set RegExp = CreateObject("VBScript.RegExp")
'Задаем шаблон поиска
RegExp.pattern = "test"
Str = "test 111 TEST"
RegExp.Global = True
RegExp.IgnoreCase = True
Result = RegExp.Replace(Str, "12")
' Получим строку 12 111 12
MsgBox Result
RegExp.Global = True
RegExp.IgnoreCase = False
Result = RegExp.Replace(Str, "12")
' Получим строку 12 111 TEST
MsgBox Result

Pattern  — Данное свойство возвращает строку – шаблон, по которому будет произведен поиск. Чтение и запись. Так, если данное свойство не задано, то поиск или замена будет произведен по всему тексту.

Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Pattern = "[0-9]+[0-9]"

MultiLine  — возвращает булево значение — TRUE (замена будет происходить во всех строках) FALSE (замена произойдет лишь в одной строке). По умолчанию стоит False. Чтение и запись. Для реализации свойства надо использовать метасимволы ^ или $ в шаблоне.

Пример регулярного выражения на  VBScript:

' ***************************
' primer_3.vbs
' ***************************
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Global = True
RegExp.Multiline = False
RegExp.Pattern = "^test"
' Предложение из двух строк
Str = "test 111" & vbCrLf & "test 111"
' Произойдет замена только в первой строке
Res = RegExp.Replace(Str, "222")
MsgBox Res
RegExp.Multiline = True
' Произойдет замена в обеих строках
Res = RegExp.Replace(Str, "222")
MsgBox Res

Методы

Replace(str1, str2) – метод vbscript производит замену в строке согласно заданному шаблону, тут str1 – строка-оригинал, которую нужно изменить, str2 – строка-шаблон, которая будет внедрятся в строку str1, например:

' ***************************
' primer_4.vbs
' ***************************
Set vbscript = CreateObject("VBScript.RegExp")
' задаем шаблон, по которому будет производиться поиск
vbscript.Pattern = "word"
' исходная строка
Str = "hello 2012 word"
MsgBox Str
' в строке Str все слова "word" будут заменены на "1111"
Res = vbscript.Replace(Str, "1111")
MsgBox Res

Test(str) – возвращает логическое значение TRUE (если совпадение по шаблону (pattern) было найдено в строке str) или FALSE (совпадение отсутствует).

' ***************************
' primer_5.vbs
' ***************************
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Pattern = "vbscript"
Str = "vbscript replace method"
' вернет истину
MsgBox RegExp.Test(Str)
Str = "jscript replace method"
' вернет ложь
MsgBox RegExp.Test(Str)

Execute(str) – производит поиск в строке str по шаблону заданному в свойстве pattern. Возвращает объект, который содержит коллекцию найденных совпадений. Например:

' ***************************
' primer_6.vbs
' ***************************
Set RegExp = CreateObject("VBScript.RegExp")
str= "регулярные 232 vbscript 55 выражения "
RegExp.pattern="[^0-9]+[^0-9]"    ' только цифры
RegExp.Global = True
Set matches = RegExp.execute(str)
For Each match in matches
RetStr = RetStr & Match.Value
Next
Newstrt= RetStr
'на выходе получим регулярные vbscript выражения
Msgbox Newstrt

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

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий