Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Статьи - [root] -

Visual Basic 5.0/6.0 - Стандартные методы обработки текстов

Все статьи / Строки / Стандартные методы обработки текстов

Реверс строки, или как из ТОПОРа сделать РОПОТ

Автор: [root] | добавлено: 03.03.2010, 15:17 | просмотров: 3840 (0+) | комментариев: 0 | рейтинг: *x6

Для тех, кто в танке и не понял из названия, о чем идет речь, объясняю.

В данной статье я объясню, как написать программу для переворачивания строк, т.е. как ТОПОР превратить в РОПОТ.

 

Раньше этот вопрос, должно быть, был актуален, но в 6 версии Visual Basic появилась функция StrReverse, которая позволяет, написав всего несколько строчек кода перевернуть необходимый вам текст. Помимо StrReverse в 6 версии добавлены еще такие функции работы со строками как Split, InstrRev, Filter, Join. Так же включены специализированные функции FormatNumber, FormatDateTime, FormatCurrency и FormatPercent.

 

Синтаксис:

StrReverse(Expression As String)

Изменяет порядок следования символов в строке, на обратный.

Т.е. если переменная содержит “ТИП”, функция возвратит “ПИТ”.

 

Пример использования функции StrReverse:

 

Option Explicit
'Делаем объявление переменных обязательным
Dim strStroka As String

'Объявляем переменную, для хранения текста, строкового типа
Private Sub Form_Load()
'При загрузке формы уберем весь текст из полей
Text1.Text = ""
Text2.Text = ""
End Sub


Private Sub Text1_Change()
'Чтобы отслеживать изменения в текстовом поле, весь код помести в событие поля Change.
strStroka = Text1.Text
'Текст введенный в текстовое поле присваиваем переменной strStroka
Text2.Text = StrReverse(strStroka)
'Выводим результат работы функции во второе текстовое поле
End Sub

 

Скачать пример можно здесь

 

А как же поступали раньше, да, интересно.

А чего тут думать давайте напишем программу, без использования функции.

 

Работа со строками может приносить интересные плоды, и я не совсем давно написал одну программу.

 

Объясню, зачем нужны переменные, строка из поля будет попадать для обработки в первую переменную - strA, во вторую переменную, strB, после обработки будет помещен результат, после чего выведен во второе текстовое поле. Ну а третья переменная, I, понадобится для хранения значения счетчика, используемого в цикле.

 

Что нам необходимо?

 

Не будем терять время и приступим, вначале создадим новый проект и форму переименуем из Form1 в ReversThis.

На форме расположим 2 TextBox (текстовых поля) и 2 CommandButton (кнопки).

Переименуем соответственно txtFirst и txtSecond, cmdCls и cmdExit. Думаю, название элементов говорят сами за себя, в первое текстовое поле мы будем вводить текст, а во втором получать результат разворота. Чтобы получилась не сырая недоработка, а законченный проект – нажатие на одну кнопку будет очищать текстовые поля, а на вторую завершать приложение.

 

Для выполнения поставленной задачи нам потребуется использовать цикл ForNext и 2 функции работы со строками: Len и Mid.

 

Функция Len возвращает число символов содержащихся в строковой переменной, Len(strA).

 

Например:

 

Помести на форме TextBox, Label.

 

Dim strA as String
strA = Text1.text
Label1.Caption = Len(strA)

 

Чтобы программа отслеживала изменения, происходящие в текстовом поле, этот код должен происходить по событию Change.

 

Private Sub Text1_Change()

End Sub

 

Для очищения текстового поля и метки по событию формы Load, приравняем: Text1 = "" и Label1 = ""

 

Private Sub Form_Load()

End Sub

 

Но вернемся к нашей программе.

Для чего же нужна будет нам функция Len?

Мы вводим текст в поле и с помощью функции отслеживаем длину строки, чтобы использовать ее в цикле.

 

Задумались?

 

Это значение будет указывать нам максимальное значение в цикле.

Т.е. цикл будет происходить от 1 до Len(strA).

 

Ладно, дальше станет понятнее.

 

Еще нам нужна функция Mid.

 

Синтаксис:

Mid(“переменная”, “начальная_позиция”, “количество_символов”)

 

Например:

 

Private Sub Form_Load()
Dim strA As String
strA = "Пример Использования Функции"
Label1 = Mid(strA, 8, 13)
'Результат "Использования"
End Sub

 

С помощью функции Mid мы будем обрабатывать переменную strB.

 

Вот собственно итог нашей работы:

 

Option Explicit
'Откройте пункт в меню Tools=>Options...
'И поставьте галочку, Require Variable Declaration
'Теперь Option Explicit, будет появляться автоматически при создании нового проекта
'Это нужно для предотвращения лишних ошибок, в работе с переменными
Dim strA As String
'Объявляем переменную strA как строковую
'Строка взятая из ТБ1
Dim strB As String
'Объявляем переменную strB как строковую
'Строка помещена в ТБ2
Dim I As Integer

Private Sub Form_Load()
'при загрузке формы очистим оба текстовых поля
txtFirst.Text = ""
txtSecond.Text = ""
End Sub

Private Sub txtFirst_Change()
'Событие Change возникает при любом действии с текстовым полем
'Это нажатие на клавишу или вставка из буфера
strB = ""
'При каждом изменении strB будет очищаться, и строиться заново
strA = txtFirst.Text
'Помещаем в переменную текст из поля
For I = 1 To Len(strA)
'Цикл For ...Next
'Начальное значение 1, конечное это - длина строки из переменной
strB = Mid(strA, I, 1) & strB
'Самая важная строка.
'Строим переменную, обрезая переменную strA
'Где I меняется в цикле от 1 до длины строки
'В переменную обрезается 1 символ, & strB - сохраняет прежнее значение
Next I
'Продолжение цикла
txtSecond.Text = strB
'Вывод результата в текстовое поле
End Sub

Private Sub cmdCls_Click()
'При нажатии на кнопку очищаем текстовые поля и переменные
txtSecond.Text = ""
strB = ""
txtFirst.Text = ""
strA = ""
End Sub

Private Sub cmdExit_Click()
'Выгружаем форму и завершаем программу
Unload Me
End Sub

 

Скачать пример можно здесь

 

+ Добавить в избранное
    ? Помощь
Об авторе

[root]

Нет информации об авторе...

См. также:
Профиль автора
[root]
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики