Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Поиск текста в строке




Изменение регистра символов в строке

Для изменения регистра символов в строке предусмотрены две специальные функции: UCase () и LCase (). Функция UCase () возвращает переданную ей в качестве аргумента строку, все символы которой преобразованы в верхний регистр. Функция LCase () выполняет обратную задачу, конвертирует символы исходной строки в нижний регистр.

Описываемые функции изменения регистра символов оказываются очень полезными при работе с командами, введенными пользователем с клавиатуры. В этом случае в программе нужно сравнить полученную строку с набором ключевых слов, которые обычно бывают набраны только прописными буквами. Таким образом, если преобразовать символы введенной команды в верхний регистр, то операция сравнения будет всегда правильно выполняться.

Синтаксис этих команд следующий:

Строка2 = UCase (Строка1);

Строка3 = LCase (Строка1).

Где Строка1 может быть набрана как прописными так и строчными буквами, Строка2 – результат работы функции UСase – строка, содержащая только прописные буквы, а Строка3 – результат работы функции LСase – строка, содержащая только строчные буквы.

Например:

UCase ("Visual Basic") возвращает " Visual Basic ";

LCase ("Visual Basic") возвращает " visual basic "

 

При работе со строками зачастую нужно выяснить, не встречается ли заданное слово, фраза или любая другая последовательность символов в некоторой строке, и если — да. то в каком именно месте. В Visual Basic предусмотрены средства поиска одной строки в другой. С их помощью можно создавать программы для поиска нужных слов в тексте, а также для их последующей замены другими словами. Например, может понадобиться в тексте какого-нибудь документа заменить слово текст словом строка.

С помощью функции InStr () можно выполнять поиск в строке как отдельного символа, так и целой группы символов. У описываемой функции есть два обязательных и два необязательных параметра. К обязательным параметрам относятся строка, в которой выполняется поиск, и строка. содержащая искомые символы. Если заданная последовательность символов найдена, функция InStr () возвращает номер первого совпадающего символа в исходной строке, начиная с единицы. Если последовательность символов не найдена, функция InStr () возвращает нулевое значение. В простейшем случае, синтаксис функции InStr () выглядит следующим образом:

НомерПервогоСимвола = InStr (ИсходнаяСтрока, ИскомаяСтрока)

Например, в результате выполнения строки кода

Print InStr('Я встречу вас во вторник", "вас")

будет напечатано число 11, поскольку слово вас расположено в исходной строке с 11 позиции от начала.

С помощью первого (необязательного) параметра функции InStr () можно указать начальную позицию в исходной строке, с которой нужно начинать поиск. Данный параметр должен быть положительным целым числом. Если начальная позиция больше длины строки, функция InStr () возвращает нулевое значение. В данном случае, синтаксис функции InStr () выглядит следующим образом:

НомерПервогоСимвола = InStr (НачальнаяПозиция, ИсходнаяСтрока, ИскомаяСтрока)

Например, в результате выполнения строки кода

Print Instr(7,"KTO не работает, тот ест", "е")

будет напечатано число 14, несмотря на то, что первая буква е встречается в данной фразе на 6-й позиции. Причина состоит в том. что мы заказали поиск символа е в строке, начиная с 7-й позиции.

Еще один необязательный параметр определяет, будет ли выполняться поиск без учета или с учетом регистра букв. В последнем случае одноименные строчные и прописные буквы будут восприниматься как совершенно разные символы. Если установить значение данного параметра равным 0 (принято по умолчанию), будет выполнен поиск с учетом регистра букв. Чтобы выполнить поиск без учета регистра букв, присвойте данному параметру значение 1. Синтаксис функции InStr (), для выполнения поиска без учета регистра букв выглядит следующим образом:

НомерПервогоСимвола = InStr(На чальнаяПозиция, ИсходнаяСтрока, ИскомаяСтрока, 1)

С помощью последнего необязательного параметра можно найти все вхождения заданной цепочки символов в исходной строке.

Для выполнения поиска в обратном направлении в Visual Basic предусмотрена еще одна функция, которая называется InStrRev(). Принцип ее работы совпадает с функцией InStr (), только синтаксис немного отличается:

InStrRev (Исходная_Строка, Искомая_Строка [, Начальная_Позиция ])

Основное отличие состоит в том, что параметр Начальная_Позиция, указывающий начальную позицию в исходной строке, с которой будет начат поиск, располагается после самих строк, а не перед ними, как у функции InStr().

Пример: Вывести номера позиций на которых встречается буква «к».

Private Sub Command1_Click()

Text1.Text = "Обычное праздничное блюдо на пикнике - шашлык. Однако можно придумать и что-нибудь оригинальное (запечённую в углях рыбу или мясо, жаренную на вертеле индейку)."

S = Text1

N = InStr(S, "к")

N2 = InStr(N + 1, S, "к")

N3 = InStr(N2 + 1, S, "к")

N4 = InStr(N3 + 1, S, "к")

Text2.Text = N & ", " & N2 & ", " & N3 & ", " & N4

End Sub




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 378; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.