Главная
Случайная страница
Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Строковые функции
Строковые VB-функции обычно применяются для нахождения заданных строк внутри других строк, для сравнения одной строки с другой и копирования выбранных частей строк. Строковые VB-функции используются довольно часто, потому что обычно необходимо манипулировать строковыми данными, полученными как пользовательский ввод функцией InputBox. В других случаях строковые данные появляются в VB-коде как имена файлов для документов, баз данных и других типов данных, сохраняемых в файлах на дисках.
В табл. 6.8, где приведены основные строковые VB-функции, N, N1, N2 — любые допустимые численные выражения, а S, S1, S2 — это любые допустимые строковые выражения. Все аргументы функций являются обязательными, если не указано иначе.
Таблица 6.8. Строковые функции
Функция(аргумент)
| Возвращает/действие
| InStr([N1,] S1, S2[, N2])
| Возвращает положение S2 в S1. N1 — начальное положение для поиска; N2 определяет тип сравнения. N1 и N2 необязательны. Если N2 опускается, то для поиска используется текущая установка Option Compare.
| InStrRev(S1, S2 [, N1[, N2]])
| Возвращает позицию появления строки S2 внутри S1, в направлении от конца (или N1) к началу строки. N2 определяет тип сравнения. Если N2 опускается, то для поиска используется текущая установка Option Compare.
| Lcase(S)
| Возвращает строку (тип String), содержащую копию S со всеми символами верхнего регистра, преобразованными в символы нижнего регистра.
| Left(S, N)
| Возвращает строку; копирует N символов из S, начиная с левого крайнего символа S.
| Len(S)
| Возвращает число символов в S, включая начальные и конечные пробелы.
| LTrim(S)
| Возвращает копию строки S после удаления символов пробела из левой части строки (начальные пробелы).
| Mid(S, N1 [, N2])
| Возвращает строку; копирует N2 символов из S, начиная с позиции символа в S, заданной аргументом N1. N2 является необязательным; если N2 опущен, то Mid возвращает все символы в строке S от позиции N1 до конца строки.
| Right(S, N)
| Возвращает значение типа String; копирует N символов из S, начиная с правого крайнего символа S. Например, Right(“outright”, 5) возвращает строку “right”.
| Rtrim(S)
| Возвращает копию строки S после удаления символов пробела из правой части строки (конечные символы).
| Space(N)
| Возвращает строку пробелов длиной N символов.
| StrComp(S1, S2 [, N])
| Сравнивает S1 с S2 и возвращает число, обозначающее результат сравнения: -1, если S1 < S2; 0, если S1 = S2; 1, если S1 > S2. N является необязательным и указывает, следует ли выполнять сравнение с учетом регистра. Если N опускается, строки сравниваются с использованием текущей установки Option Compare.
| StrConv(S, N [,LCID])
| Возвращает строку, преобразованную в новую форму в зависимости от числового кода, заданного аргументом N. Visual Basic предоставляет внутренние константы для использования с функцией StrConv; наиболее полезными являются: vbProperCase (преобразует строку так, что каждая буква, начинающая слово, становится заглавной), vbLowerCase (преобразует строку в буквы нижнего регистра) и vbUpperCase (преобразует строку в буквы верхнего регистра).
| String(N, S)
| Возвращает строку длиной N символов, состоящую из символа, заданного первым символом в S. Например, String (5, “x”) возвращает строку “ххххх”.
| Trim(S)
| Возвращает копию строки S после удаления начальных и конечных символов пробела из этой строки.
| Ucase(S)
| Возвращает S со всеми символами нижнего регистра, преобразованными в символы верхнего регистра.
| Функция InStr
Возвращает позицию первого вхождения одной строки внутри другой. Функция имеет следующий синтаксис:
Синтаксис
InStr ([ start, ] string1, string2 [, compare ])
Аргументы InStr функции означают следующее:
start
| Арифметическое выражение, значение которого устанавливает начальную позицию для поиска. Если этот параметр опущен, поиск начинается с первой позиции. Если start содержит значение Null, выдается сообщение об ошибке. Если параметр start задан, то compare тоже должен быть задан.
| Необязательный параметр
| string1
| Строковое выражение, в котором выполняется поиск.
| Обязательный параметр
| string2
| Строковое выражение, поиск которого осуществляется в строке string1.
| Обязательный параметр
| compare
| Определяет тип сравнения при поиске. Если compare содержит значение Null, выдается ошибка. Если этот параметр опущен, тип сравнения определяется объявлением Option Compare.
| Необязательный параметр
| Параметр compare может принимать следующие предопределенные значения:
Константа
| Значение
| Описание
| vbUseCompareOption
| -1
| Выполняется сравнение с использованием объявления Option Compare.
| vbBinaryCompare
|
| Выполняется бинарное сравнение.
| vbTextCompare
|
| Выполняется текстовое сравнение.
| vbDatabaseCompare
|
| Выполняется сравнение, основанное на информации в вашей базе данных. Только для Microsoft Access.
| Возвращаемые значения функции InStr:
Условие
| Возвращаемое значение
| String1 — строка нулевой длины
|
| String1 содержит значение Null
| Null
| String2 - строка нулевой длины
| start
| String2 содержит значение Null
| Null
| String2 не найдена
|
| String2 находится в строке string1
| Позиция найденной строки
| Start > string2
|
|
Примеры использования функции InStr:
VarResult=InStr(1, "AEIOUT","IO") 'возвращается 3
s1="abracadabra"
s2="cad"
VarResult= InStr(2,s1,s2) 'возвращается 5
Функция Len
Чаще всего вам, наверняка, придется использовать функцию Len, с помощью которой можно определить длину строки. Синтаксис использования функции:
Синтаксис
Len (StringIn | Varname)
Аргументы функции означают следующее:
StringIn
| Любое допустимое строковое выражение. Если значением аргумента является Null, возвращается также Null.
| Varname
| Любая допустимая переменная. Если значением аргумента является Null, возвращается также Null. Если varname имеет тип Variant, то этот аргумент рассматривается как строка и функция возвращает длину этой строки.
| Примеры использования функции Len:
MyLen = Len("VB")'возвращается 2
Customer="Владимир Петрович"
MyLen = Len(Customer ) 'возвращается 17
Чаще всего в программах на Visual Basic (особенно в диалоговых приложениях и приложениях баз данных) функция Len используется вместе с функцией Trim для определения точного количества «полезных» символов в строчной переменной. Например, выражение Len(Trim(Text1.Text)) возвращает длину строки, введенной пользователем в текстовое окно Text1 без учета возможных пробелов.
Функция Mid
В Visual Basic имеется несколько способов для ссылки на отдельные символы в строке. Один из них — использование функции Mid, которая возвращает указанное количество символов строки, начиная с заданной позиции в строке. Синтаксис функции:
Синтаксис
Mid (StringIn, Start [, Length ])
Аргументы функции означают следующее:
StringIn
| Тип String. Содержит строку, из которой выбираются возвращаемые символы. Если аргумент содержит значение Null, возвращается также Null.
| Обязательный параметр
| Start
| Тип Long. Указывает положение первого возвращаемого символа в строке. Если значение аргумента больше количества символов в строке StringIn, возвращается нулевая строка ("").
| Обязательный параметр
| Length
| Тип Long. Задает количество возвращаемых символов. Если этот аргумент отсутствует (или имеет значение большее, чем число оставшихся символов), возвращаются все символы строки, начиная с номера Start.
| Необязательный параметр
|
Функции обработки строк так тесно связаны между собой, что не так просто придумать пример использования одной функции, не используя какую-либо другую, поэтому для демонстрации работы сразу нескольких функций предлагается создать небольшое приложение, которое, принимая от пользователя символ в текстовом окне, отображает в виде меток коды последнего и предпоследнего введенных символов. На рис.6.11 представлена форма приложения в режиме разработки.
Рис. 6.11
Приложение с функциями обработки строк Asc, Len, Mid и Right.
В следующей таблице приведены свойства элементов управления формы, заданные в режиме разработки.
Тип элемента
| Свойство
| Значение
| Примечание
| Form
| Caption
| Пример с функциями обработки строк
| Заголовок окна (формы) в верхней части.
| Frame
| Name
| Frame1
|
|
| Caption
| Введите символ
|
| TextBox
| Name
| Text1
| Текстовое окно для ввода символов
|
| Text
| ""
|
| Frame
| Name
| Frame2
|
|
| Caption
| Код
|
| Label
| Name
| Label1
| Метка для отображения последнего введенного символа
|
| Caption
| ""
|
|
| BorderStyle
| Fixed Single
|
| Label
| Name
| Label2
| Обычная метка
|
| Caption
| последнего символа
|
| Label
| Name
| Label3
| Обычная метка
|
| Caption
| предпоследнего символа
|
| Label
| Name
| Label4
| Метка для отображения предпоследнего введенного символа
|
| Caption
| ""
|
|
| BorderStyle
| Fixed Single
|
| CommandButton
| Name
| Command1
| Кнопка для выхода из приложения
|
| Caption
| Выход
| Текст на кнопке.
|
| Cancel
| True
| При нажатии на клавишу Esc инициируется событие Click кнопки.
| Код модуля формы данного тестового приложения приведен в листинге 6.3.
Листинг 6.3 Код модуля формы тестового приложения.
1 Private Sub Command1_Click()
2 Unload Me
3 End Sub
4 Private Sub Text1_Change()
5 Label1.Caption = Asc(Right(Text1.Text, 1))
6 If Len(Text1.Text) > 1 Then
7 Label4.Caption = Asc(Mid(Text1.Text, Len(Text1.Text) - 1, 1))
8 End If
9 End Sub
Обратите внимание на то, что возвратить из строки последний символ не составляет особого труда: функция Right «легко» справляется с этой задачей, возвращая один символ самый правый символ (строка 5). Чтобы возвратить предпоследний символ, пришлось сначала определить длину строки (функция Len в 6-ой строке), а затем с помощью функции Mid возвратить точно указанный символ. Эту же задачу, конечно, можно решить и по-другому. Например, более простым кодом (функция Right возвращает два последних символа):
Label4.Caption = Asc(Right(Text1.Text, 2))
На рис. 6.12 приведено приложение в режиме выполнения.
Рис. 6.12
Тестовое приложение в режиме выполнения.
|