Second_magistr / ВЕБ-програм / методичка
.pdfHTML и VBScript |
63 |
InStr
Описание:
Возвращает позицию первого вхождения одной строки во другую.
Синтаксис:
InStr([start, ]string1, string2[, compare])
Аргументы функции InStr
Аргумент |
|
|
Описание |
start |
Не обязательный аргумент, устанавливающий с какой |
||
позиции начинать поиск. Данный аргумент требует |
|||
|
задания и всех остальных аргументов. |
||
string1 |
Обязательный. Где ищем. |
||
string2 |
Обязательный. То, что ищем. |
||
compare |
Не обязательный аргумент, устанавливающий тип |
||
|
сравнения строк. |
|
|
Параметр compare может принимать следующие значения |
|||
Константа |
Значение |
Описание |
|
VbBinaryCompare |
0 |
Выполняет бинарное сравнение |
|
VbTextCompare |
1 |
Выполняет текстовое сравнение |
|
Возвращаемые значения функции InStr: |
|||
|
Если |
|
InStr возвращает |
String1 — нулевой длины |
0 |
||
String1 — Null |
Null |
||
String2 — нулевой длины |
Start |
||
String2 — Null |
Null |
||
String2 — не найдена |
0 |
||
String2 — найдена в string1 |
Позиция начала вхождения |
||
Start > Len(string2) |
0 |
Пример:
Dim SearchStr, SearchCh, MyPos SearchStr ="XXpXXpXXPXXP" SearchCh = "P"
'Текстовое сравнение, стартовавшее
64
'с 4 позиции, возвращает 6 MyPos = Instr(4, SearchStrg, SearchCh,1)
'Бинарное сравнение, стартующее с 1,
'возвращает 9.
MyPos = Instr(1, SearchString,
SearchChar, 0)
'Сравнение бинарное по умолчанию
'(нет последнего аргумента). MyPos = Instr(SearchStr, SearchCh)
'Вернет 9.
MyPos = Instr(1, SearchString, "W") 'Бинарное сравнение с позиции 1
'вернет 0 ("W" отсутствует).
Join
Описание:
Возвращает строку составленную из подстрок хранящихся в элементах массива.
Синтаксис: Join(list[, delimiter])
Аргументы функции Join:
Аргумент |
Описание |
|
List |
Обязательный параметр. Одномерный массив, |
|
содержащий подстроки для соединения. |
||
|
||
|
Необязательный параметр. Строка символов, ис- |
|
|
пользуемая для разделения подстрок. Если аргу- |
|
Delimiter |
мент не установлен, по умолчанию используется |
|
пробел (" "). Если delimiter — строка нулевой |
||
|
||
|
длины, то подстроки будут объединены без ка- |
|
|
ких-либо разделителей. |
Пример:
Dim MyStr
Dim MyArray(4) MyArray(0) = "Госп. " MyArray(1) = "Имярек "
HTML и VBScript |
65 |
MyArray(2) = "Ник "
MyArray(3) = "I"
MyStr = Join(MyArray)
'MyStr будет в результате содержать
'строку "Госп. Имярек Ник I"
Lcase/ Ucase
Описание:
Преобразует строку к нижнему/верхнему регистру.
Пример:
Dim MyStr
Dim LcaseStr, UcaseStr MyStr = "VBS"
LCaseStr = LCase(MyString) 'содержит "vbs". UcaseStr = UCase(LCaseStr) 'содержит "VBS"
Left/ Right
Описание:
Возвращает указанное количество символов с левой/правой стороны строки.
Синтаксис:
Left (list[, delimiter]) Right (list[, delimiter])
Описание
String Строка-источник. Если string содержит Null, возвращается Null.
Числовое выражение, специфицирующее количество возвращаемых символов. Если 0, возвра- Length щается строка нулевой длины (""). Если Length больше чем, либо равно количеству символов в
String, возвращается вся строка.
Пример:
Dim AnyStr, MyStr1, MyStr2 AnyStr = "Hello World"
66
MyStr1 = Right(AnyStr, 6)
'Вернет "World".
MyStr2 = Left(AnyStr, 5)
'Вернет "Hello ".
Len
Описание:
Возвращает число символов в строке.
Синтаксис: Len(string | varname)
Аргументы функции Len:
Аргумент |
Описание |
String |
Строка |
Varname |
Переменная, содержащая строковый тип данных. |
Пример:
Dim MyStr
MyStr = Len("VBSCRIPT") 'Вернет 8.
Mid
Описание:
Возвращает указанное число символов из строки, начиная с выбранной позиции.
Синтаксис:
Mid(string, start[, length])
Аргументы функции Mid:
Аргумент |
Описание |
String |
Строка источник символов. |
Start |
Позиция начала выборки символов. |
Length |
Число возвращаемых символов. |
Пример:
Dim MyV
MyV=Mid("VB Script - круто!", 4, 6) 'Вернет "Script"
HTML и VBScript |
67 |
Year/ Month/ Weekday/ Day
Описание:
Возвращает год/месяц/день недели/день месяца, выраженный в числах.
Синтаксис: Year(date) Month(date) Weekday(date) Day(date)
Replace
Описание:
Возвращает строку, в которой указанная подстрока find в исходной строкне expression заменена на count копий строки replacewith. Причем поиск начинается с позиции start. Параметр compare используется так же как это описано для функции InStr.
Синтаксис:
Replace(expression, find, replacewith[, start[, count[, compare]]])
Пример:
Dim MyStr
MyStr = Replace("XXpXXPXXp","p","Y") 'Бинарное сравнение. Возвратит
' строку "XXYXXPXXY".
MyStr = Replace("XXpXXPXXp","p","Y",3,-1,1) 'Текстовое сравнение с 3-й позиции.
' Вернет строку "YXXYXXY".
IsNumeric/IsDate/IsNull/IsObject
Синтаксис: IsNumeric(expression) IsDate(expression) IsNull(expression)
68
IsObject(expression)
Описание:
Возвращает значение True/False в зависимости от того, является ли проверяемое выражение expression числом/датой/значением типа Null/ объектом OLE Automation.
HTML и VBScript |
69 |
Приложение Б.
Циклы в языке VBScript
Циклы позволяют выполнять несколько раз один и тот же код. Это может оказаться полезным при работе с массивами, анализе строковых выражений, обработке наборов элементов управления или коллекций.
В языке VBS организовать циклы можно с помощью следующих операторов.
For ... Next
Описание:
Используется счетчик чтобы выполнить блок команд указанное количество раз.
Синтаксис:
For counter = start To end [Step step] [statements]
[Exit For] [statements]
Next
Здесь statements — один или несколько операторов VBS, параметры counter и start — имя переменной-счетчика и ее начальное значение, соответственно. Параметр end задаёт значение счетчика, при котором цикл прекращается, параметр step — величину приращения счетчика. По инструкции Exit For происходит корректный выход из цикла вне зависимости от значения счетчика.
Пример:
For i = 1 To 3
For j = 1 To i
For k = 1 To j
MsgBox "Сколько раз появится сообщение?"
Next
Next
Next
Do ...Loop
70
Описание:
Выполняется пока (While) условие выполнено (True), либо до тех пор, пока (Until) условие не выполнено (False).
Синтаксис:
Вариант с предусловием
Do [{While | Until} condition] [statements]
[Exit Do] [statements]
Loop
Вариант с постусловием
Do
[statements] [Exit Do] [statements]
Loop [{While | Until} condition]
Здесь condition — любое допустимое логическое выражение.
Пример: |
'Объявили переменные |
|
Dim counter, myN |
||
counter = 0 |
'Инициализация |
|
myN = 9 |
'Инициализация |
|
Do Until myN = 10 'Пока myN не станет 10 |
||
myNum = myN - 1 |
|
|
counter = counter + 1 |
|
|
If myN < 10 Then Exit Do |
|
|
Loop |
'Выход, если меньше 10 |
|
|
|
|
Dim Check, Counter |
|
|
Check = True |
|
'Инициализация |
Counter = 0 |
|
|
Do |
|
'Внешний цикл |
Do While Counter < 20 |
'Внутренний цикл |
|
Counter = Counter + 1 |
'Условие выполнено |
|
If Counter = 10 |
Then |
|
Check = False |
'Установили флажок в False |
HTML и VBScript |
71 |
Exit Do 'Выход из внутр. цикла
End If
Loop
Loop Until Check = False 'Выход из внешнего
For Each ... Next
Описание:
Повторяет блок команд для каждого элемента коллекции или массива.
Синтаксис:
For Each element In group [statements]
[Exit For] [statements] Next [element]
Здесь element — имя фиктивной переменной для обхода всех элементов в коллекции (массиве), group — имя коллекции (массива).
Пример:
Dim MyAr,Elem
MyAr = Array(10,20,30,40) 'Встроенная функция Array
'заполняет элементы массива MyAr 'элементами, указанными в списке
For Each Elem in MyAr 'Перебор элементов
If Elem=40 Then
Alert Elem Exit For
End If
Next
72