Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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

Тестовое приложение в режиме выполнения.

Date: 2015-09-02; view: 407; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию