Строки.
Поскольку информация в полях ввода
Visual Basic всегда хранится в текстовом формате, работа со строками представляется
здесь более важной, чем в обычном BASIC. Для того чтобы сложить две строки
вместе (т. н. конкатенация), можно использовать операторы & или +.
Например:
Titles = "Queen "
Name$ = "Elizabeth "
Numeral$ = "I"
Title$ & Name$ &. Numeral$ = "Queen Elizabeth
I"
Title$ 6 Name$ & Numeral$ & Numeral$
= "Queen Elizabeth II"
Оператор & объединяет строки
в том порядке, как они представлены. Поэтому, в отличие от суммирования
чисел, для слияния строк важен их порядок следования. С помощью & можно
складывать сколько угодно строковых значении. Ниже приведен пример с использованием
уже объявленных выше переменных:
CurrentQueen$ = Title$ & Name$ & Numeral$
& Numeral$
Совет: Основным отличием
оператора & от + является возможность использования & для объединения
строковых данных с другими их типами. Например, выражение С=А% & В$
объединяет целочисленную и строковую переменные, изменяя тип их значений
на variant.
Формат
ASCII/ANSI
У компьютера нет отдельного
участка памяти для хранения текста, а еще одного - для чисел. Все, что
поступает в память компьютера, преобразуется в числовой формат (реально
- в двоичное представление). В программе помечается только, что данный
участок оперативной памяти содержит закодированный текст. Обычно формат
для преобразования текстовой информации в цифровую называется ASCII (American
Standard Code for Information Interchange). Данный формат присваивает каждому
символу соответствующее число в диапазоне от 0 до 255, хотя Windows не
может вывести на экран все 255 символов и использует более ограниченный
их набор ANSI (American National Standards Institute). Управляющие символы,
а также специальные типа табуляции или перевода строки -имеют номера
до 32. Значением функции Chr(n) является символ, соответствующий числу
п из формата ASCII. Оператор
Print Chr(n)
либо выводит на экран символ, соответствующий
коду ASCII, текущим шрифтом, либо имеет место особый эффект в зависимости
от типа управляющего символа. Например, оператор
Print Chr(227)
выводит греческую букву "пи" на экране, если перед
этим значение FontType было установлено как MS LineDraw при помощи окна
Propoties или через Code.
Следующий пример использует
код символа кавычек ("), 34, для вывода на экран фразы, заключенной в кавычки
с обеих сторон:
Print Chr (34) ;
Print "Quoth the raven, nevermore." ;
Print Chr (34)
Совет: Функция Chr возвращает
строку, хранимую в типе variant. Аналогичная более старая функция ChrS
возвращает непосредственно строковое значение.
На экране будет выведено
"Quoth the raven, nevermore."
Примечание: Предыдущий результат
можно получить с помощью оператора:
Print "'"'Quoth the raven, nevermore.""" ;
так как Visual Basic, в отличие от многих версий
BASIC, воспринимает два символа кавычек как один и выводит его на экран
в выражениях с оператором Print или при работе со строковыми значениями.
В Visual Basic существует функция
Asc, параметром которой является строковое значение, а результат равняется
коду ASCII для первого символа. Если строка пустая, функция выдаст ошибку
во время выполнения (run time error).
Порядок ASCII/ANSI используется
по умолчанию Visual Basic при сравнении различных строк с помощью операторов
сравнения, таких как > и <. Наиболее важным местом для применения кодировки
ASCII/ANSI является процедура обработки событий KeyPress.
Примечание: Внутри Visual
Basic используется Unicode - система, поддерживающая все возможные языки.
В ней содержится порядка 65 тысяч различных символов. Более подробно об
этом можно узнать из приложения к книге "Руководство
программиста". За исключением нескольких особых ситуаций, включая двоичные
файлы, переключение между ASCII и Unicode является вполне прозрачным для
программиста.
Переход
на новую строку
В ранних версиях Visual Basic
одним из основных способов использования функции Chr является формирование
управляющих символов для перехода к новой строке в программах. Переход
к новой строке используется при работе с многостроковыми полями ввода или
при добавлении информации в информационной панели. Как и в старых печатных
машинках, для перехода на новую строку необходимо проделать две операции:
перевод каретки (carriage return) для возврата к первому символу строки,
а затем перевод строки для перехода на следующую строку. При использовании
функции Chr переход на новую строку выглядит так:
vbCrLf = Chr (13) + Chr (10)
Но теперь имеется возможность
использовать встроенную константу vbCrLf.
Например, необходимо разорвать строку в информационной
панели или в многостроковом поле ввода. Быстрее всего это реализовать с
использованием vbCrLf:
TextString$ = "Visual Basic
For Windows" + vbCrLf
TextString$ = TextString$ +
"Osborne McGraw-Hill" + vbCrLf
TextString$ = TextString$ +
"Berkeley, CA"
Textl.Text = TextString$
Совет: Если пренебречь установкой
свойства MultiLine в значение True и попробовать применить переход на новую
строку, то на экране можно будет увидеть две интересные вертикальные линейки
прокрутки.
Кстати, может возникнуть вопрос:
почему строковые значения сначала "накапливаются", а только затем выводятся
на экран. Ответ прост: это один из основных способов ускорения работы программ
на Visual Basic.
Совет: Гораздо быстрее сначала
скомпоновать всю строку, а затем использовать свойство Text, чем изменять
его постоянно.
Аналогичным образом можно ускорить
формирование информационной панели, если в ней необходимо вывести несколько
строк:
Message$ = "This will be on line 1."
Message = Message$ + vbCrLf + "This will be on
line 2."
MsgBox Message$
Другие
полезные строковые константы
Кроме константы vbcrLf, существует
еще ряд других, не менее полезных встроенных констант (см. таблицу далее).
Все эти константы можно использовать в программах на Visual Basic вместо
соответствующих значений функций Chr$ или Chr. Однако для Microsoft Windows
применение найдут только коды для carriage return, line feed, tab и backspace.
Строки
фиксированной длины
Строки фиксированной длины
представляют собой специальный тип строки, в дальнейшем часто используемый.
Подобные переменные создаются при помощи оператора Dim. Вот пример:
Dim ShortString As String * 10
Dim strShort As String * 10
|