Символьные данные и операции над ними

Символьные данные или строка символов - любая последовательность символов. В Visual Basic строка символов заключается в кавычки.

Примеры:

«12345678»; «Иванов»; «Фамилия И.О.»; «Michael McKelvi»; «tea for two»

В операторе описания типа используется ключевое слово String.

В Visual Basic символьные данные (строки символов) могут быть постоянной или переменной длины. Это определяется в операторе описания типа.

Примеры:

Dim Name As String*15, SurName As String - переменная Name постоянной длины 15 символов, переменная SurName переменной длины (может включать любое до 65000 количество символов).

Операции со строками.

1. Операция объединения (конкатенация)- & (символ “амперсанд”).

Примеры:

{ - символ пробела

«Иванов{» & «Иван{» & «Иванович» -получается строка «Иванов{Иван{Иванович».

Обратите внимание, что пробелы между словами вставлены в исходные строки.

Dim Name As String*15, SurName As String, Author As String*30

Name = «Michael» (дает результат «Michael{{{{{{{{» заданной длины 15 символов)

SurName = «McKelvi» (длина равна 7 символам)

Author = Name & SurName (переменная Author будет иметь значение
«Michael{{{{{{{McKelvi{{{{{{{{» заданной длины 30 символов). Обратите внимание, что до заданной длины строка дополняется пробелами.

2. Другие операции со строками реализуются с помощью специальных функций для работы со строками:

2.1. InStr - определяет, содержится ли одна строка символов в другой. Синтаксис применения функции:

InStr (строка 1, в которой ведется поиск; строка 2 -искомая строка).

Результатом поиска является значение позиции, с которой искомая строка 2 входит в строку 1. Если искомая строка не входит, то результат поиска равен 0.

Примеры:

InStr («abcd efg hijklmnopqrstuvwxyz», «efg»)- результат 5.

InStr («abcdefghijklmnopqrstuvwxyz», «123»)- результат 0.

Имеются функции для определения длины строки, удаления части строки, замены части строки и др.

См. файл 005Stroka_Function1.doc.

Элемент Текстовое окно ( TextBox).

Используется для получения от пользователя данных и вывода символьной информации.

Наиболее важные свойства:

MaxLenght (Максимальная длина) - количество вводимых или выводимых символов (0- можно вводить или выводить любое количество символов).

MultiLine (Несколько строк) - принимает значение True (в окне несколько строк) или False (в окне одна строка). Для того, что бы начать текст с новой строки необходимо в место разрыва добавить символ перевода строки используя константу VBCRLF или два символа с кодами 13 и 10 соответственно.

Text1.text = “Первая линяя” & VBCRLF & “Вторая линия”

Или

Text1.text = “Первая линяя” & chr(13) & chr(10) & “Вторая линия

Text - определяет вводимую или выводимую в окне строку, значение свойства можно изменять как в процессе работы программы так и при проектировании формы. Что бы узнать текущее значение элемента textbox необходимо считать значение свойства text.

Scrollbars – свойство определяющее расположение линеек прокрутки снизу, сбоку или снизу и сбоку (только для многострочных окон).

Если необходимо запретить пользователю редактировать текстовую информацию в окне то свойство Lock должно быть равно False При этом пользователь может выделять текст и копировать его используя буфер обмена.

Alignment – свойство определяющее выравнивание текста внутри окна.

При работе с текстовым окном удобно использовать событие «Нажатие клавиши» ( KeyPress ), нажимая на клавишу Enter («Ввод») в конце строки, и обрабатывать его соответствующей процедурой обработки события. Ascii-код клавиши Enter равен 13.

Основные события элемента управления

Change – возникает при изменении текста в текстовом окне

Click – возникает при щелчке по элементу управления или при изменении данных в элементе

DblClick – двойной щелчок мышью

Key Press – нажатие и отпускание клавиши на клавиатуре

MouseUp MouseDown – нажатие и отпускание кнопки мыши

LostFocus – возникает перед переходом указателя на другой элемент управления формы

Метод SetFocus устанавливает курсор в текстовое окно (удобно устанавливать курсор не щелчком мыши, а программно методом SetFocus).

Элемент управления Frame (Рамка)

Элемент управления Frame (Рамка) позволяет разделить на форме функциональные группы элементов.

Caption – текстовое свойство определяющее заголовок рамки.

Используя свойства Enabled (Доступна) и Visible (Видимость) для рамки, можно сделать все элементы внутри рамки доступными или нет для каких- либо действий и видимыми или невидимыми.

BorderStyle – определяет вид границы рамки.

Проект.

Разместим на форме две командные кнопки и две рамки. Первая рамка объединяет текстовые окна для демонстрации операции объединения (конкатенации) строк, вторая - для поиска символов в строке.

Командные кнопки делают доступным соответствующие рамки и находящиеся в них текстовые окна. Форма показана на рисунке.

Набираемая в текстовых окнах исходная информация вводится нажатием клавиши Enter. При этом курсор с использованием метода SetFocus переводится в следующее окно для ввода данных.

Имена управляющих элементов следующие:

Командные кнопки: Command1 и Command2.

Надписи кнопок заданы значениями свойства Caption. “ Конкатенация ” и “Поиск”

Рамки: Framе1 и Frame2.

Названия рамок заданы значениями свойства Caption. “ Конкатенация ” и “Поиск”

Метки: Label1, Label2, Label3, Label4, Label5, Label6.

Значения их свойства Caption определяют заголовки текстовых окон (Строка1, Строка2, Ответ, Исходная строка, Образец, Результат).

Тексты процедур обработки событий:

Private Sub Form_Load() При загрузке формы обе рамки и

Frame1.Enabled = False управляющие элементы внутри не реагируют

Frame2.Enabled = False на какие-либо события (щелчок мыши и др.)

End Sub

Private Sub Command1_Click() Щелчок мыши по кнопке делает соответст-

Frame1.Enabled = True вующую рамку и управляющие элементы

Frame2.Enabled = False внутри доступными для событий.

Text1.SetFocus Курсор мыши устанавливается в первое

End Sub текстовое окно.

Private Sub Command2_Click() Щелчок мыши по кнопке делает соответст-

Frame2.Enabled = True вующую рамку и управляющие элементы

Frame1.Enabled = False внутри доступными для событий.

Text4.SetFocus Курсор мыши устанавливается в окно

End Sub для ввода исходной сроки.

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Text2.SetFocus. Ввод набранных в окне символов и

End If перевод курсора в следующее окно

End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)

Dim Stroka As String Ввод набранных в окне символов,

If KeyAscii = 13 Then объединение строк и вывод результирующей

Stroka = Text1.Text & Text2.Text строки в окно.

Text3.Text = Stroka

End If

End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then Ввод набранных в окне символов и

Text5.SetFocus перевод курсора в следующее окно.

End If

End Sub

Private Sub Text5_KeyPress(KeyAscii As Integer)

Dim Rez As Integer Ввод набранных в окне символов,

If KeyAscii = 13 Then обращение к функции InStr,

Rez = InStr(Text4.Text, Text5.Text) вывод результата поиска

Text6.Text = Str(InStr(Text4.Text, Text5.Text)) в текстовое окно.

End If

End Sub

Обратите внимание: результатом поиска является номер позиции (число). Оно преобразуется в строку символов (в текстовое окно выводится строка).

Обратите внимание на использование оператора присваивания

Text6.Text = Str(InStr(Text4.Text, Text5.Text)) - в левой части оператора данные символьного типа, в правой также символьного типа.

Задание.

1. Прочитать учебный материал. Уметь отвечать на вопросы.

2. Самостоятельно подготовить и отладить на компьютере аналогичный проект для заданной преподавателем символьной функции из файла 005Stroka_Function1.doc. В разработанный выше проект добавить новую рамку с необходимыми текстовыми окнами.

3. Демонстрация работы проекта преподавателю для различных вводимых строк символов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: