Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Строки. Методы модуля Strings



Строки и символы

Начнем со строк. Со строковым типом Stringмы познакомились в 5.6. Какие интересные задачи связаны со строками? Шифровка-дешифровка информации. Поиск в длинном тексте (например, в словаре или в инструкции по игре) нужного слова, которое просто так, глазами, искать очень долго. Автоматическое исправление орфографических ошибок в диктанте по русскому языку. Бездна задач по ведению деловой документации. И так далее.

Что мы умеем делать со строками? Мы знаем только операцию слияния строк:

Операция Результат Пояснение
"Мото" +"роллер" Мотороллер Операция + над строками просто соединяет строки в одну. VB может ее спутать со сложением чисел
"Мото" &"рол" & "лер" Мотороллер Операция & тоже соединяет строки в одну. Ее рекомендуется всегда применять вместо +, так как со сложением ее не спутаешь

Для решения поставленных выше задач нам мало одного слияния, мы должны уметь «влезать внутрь строк», то есть анализировать и преобразовывать строки. VB предоставляет для этого богатый набор возможностей.

Строки. Методы модуля Strings

Полезные средства для работы со строками унаследованы от Visual Basic 6.0. Вы можете воспользоваться ими, как методами модуля Stringsпространства имен Microsoft. VisualBasic. Эти методы представлены функциями. Вот основные из них:

Функция Результат Пояснение
Len("Чук и Гек") Длина строки, включая пробелы
GetChar("Чук и Гек", 5) и 5-й символ в строке
Mid("Астроном" , 3, 4) трон Часть строки длиной 4, начиная с 3-го символа
Strings.Left("Победа", 2) По 2 левых символа в строке
Strings.Right("Победа", 3) еда 3 правых символа в строке

Мне пришлось написать Strings.Left, потому что функция Left встречается не только в модуле Strings. То же относится и к Strings.Right.

При помощи функцииGetChar вы можете добраться до каждой буквы в тексте. Следующий фрагмент распечатывает в столбик слово «Телепортация»:

Dim s As String = "Телепортация"

Dim i As Integer

For i = 1 To Len(s)

Debug.WriteLine (GetChar(s, i)) 'Это i-я буква в строке

Next

Следующая функция позволяет искать в тексте нужное слово:

InStr("Астроном", "трон") Позиция (номер символа), начиная с которой строка "трон" находится в строке "Астроном"
InStr ("Астроном", "Трон") Строка "Трон" не найдена в строке "Астроном"

Следующие функции занимаются заглавными и строчными буквами:

Ucase("астРОнОм") АСТРОНОМ Все символы строки переводятся в верхний регистр
Lcase("астРОнОм") астроном Все символы строки переводятся в нижний регистр

В 3.3 (Калькулятор) жизнь заставила нас познакомиться с функцией Val, которая преобразует строку в число. Напомню ее вам:

Val(“20 груш и 8 яблок”) Функция читает строку слева направо, пока не натолкнется на символы, никакого отношения к числам не имеющие
Val (“ - 1 0груш”) -10 На пробелы при этом внимание не обращается
3 * Val ( "2" & "0" ) Выражение "2" & "0" равняется строке "20", ну а Val("20") равняется числу 20

Существует функция Str, которая наоборот – преобразует число в строку.

Str(5 * 5) Число 25 преобразуется в строку "25". Хотя, надо сказать, что VB при работе с данными во многих случаях сам, безо всякого вмешательства, услужливо преобразовывает данные к удобному с его точки зрения типу.

Когда мы вводим текст в текстовое окно, мы часто не замечаем, что лишний раз нажали на клавишу пробела, тем более, что лишние пробелы, особенно в самом начале и в самом конце строки, заметить трудно. Мы не всегда заботимся о том, чтобы избавиться от них. А зачем? А затем, что компьютер пробелы видит не хуже любой буквы и считает их полноправными символами. Мы склонны считать строки "Африка" и "Африка " вполне одинаковыми. Компьютер же не может позволить себе такой вольности, он прекрасно видит, что во второй строке в конце стоит пробел. Значит строки не равны и это может привести к неожиданным для нас результатам. Сколько раз в моей практике ученик при подключении к локальной сети вводил свое имя с лишним пробелом, а потом негодовал, что компьютер-сервер не пускает его в сеть, потому что он такого имени не знает.

Следующие три функции позволяют нам справиться с невнимательностью:

Функция Результат Пояснение
"Ж" & LTrim(" Бутевни матлны ") & "Ж" ЖБутевни матлны Ж Функция LTrim отсекает ведущие слева пробелы
"Ж" & RTrim(" Бутевни матлны ") & "Ж" Ж Бутевни матлныЖ Функция RTrim отсекает волочащиеся справа пробелы
"Ж" & Trim(" Бутевни матлны ") & "Ж" ЖБутевни матлныЖ Функция Trim отсекает пробелы и слева и справа

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.