Курс лекций по V B 5.0

Если необходимо, чтобы все переменные в процедуре были статическими, необходимо добавить

Static Private Sub cmdLom_Click()

Строки

Операция конкатенации для сложения нескольких строк + или &

Например, A$ = “Иванов”

B$ = “Иван”

C$ = “Иванович”

D$ = A$ & B$ & C$

или D$ = A$ + B$ + C$

Отличие. С помощью “&” можно объединять строковые и другие типы. Например, C = A% & B$, изменится их тип на Variant.

Для перехода к новой строке при печати символов (перевод каретки) используется встроенная const VbCrLf. Например, чтобы разорвать строку в информационной панели или в многостроковом текстовом поле можно

Message $ = “1-я строка”

Message $ = Message $+VbCrLf + “2-я строка”

MsgBox Message $

Замечание. Если в программе используются числа и они не присваиваются переменной Variant, то VB полагает:

1) Если число не имеет десятичной точки и лежит в диапазоне от -327686 +32767, то это Integer.

2) Если не имеет десятичной точки и лежит в диапазоне для Long Integer, то это Long Int.

3) Если имеет десятичную точку и лежит в диапазоне для чисел с обычной точностью (7 цифр), то это Single precision.

4) Если имеет десятичную точку, но лежит вне диапазона, то это Double precision.

Такие приблизительные расчеты часто приводят к проблемам. Например, VB полагает, что тип результата с двумя целыми числами есть целое. Например результат Print 123456 ?789 выходит за рамки целого и возникает ошибка переполнения. Тогда необходимо использовать идентификатор хотя бы для одной переменной Print 123456& ?789.

Можно также использовать встроенные функции для преобразования типов, например, LInt - округляет число до целого, Clong - до длинного целого, Cvar - преобразует к Var.

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

Помимо обычных, десятичных чисел, VB использует двоичные и шестнадцатеричные. Последние обозначаются с префиксом &H. Например, число 49 = &H31.

Шестнадцатиричные цифры используются для кодирования различных цветов: любой цветовой код состоит из 6 шестнадцатиричных цифр от &H000000& = 0 до &HFFFFFF& (длинное целое) (16777215).

Вообще конкретный цвет определяется количеством красного R, зеленого G и синего цветов B во всевозможных сочетаниях. В коде цвета VB две последние цифры означают количество красного, две средние - количество зеленого, а две первые - количество синего, например

&H0000FF& - максимально красный

&H00FF00& - максимально зеленый

&HFF0000& - максимально синий

&H000000& - черный

&HFFFFFF& - белый

&H00FFFF& - желтый (красный + зеленый)

&H808080& - серый (равные количества цветов)

Константы

Для неизменных значений в программе используются константы. Константы объявляются аналогично переменным, по тем же правилам: имя содержит не более 200 символов, первый символ буква. Если в программе используется только одна форма, то константу можно объявить в разделе DeclarationHous для объекта General. Или же можно и непосредственно в процедуре, но это хуже. Константу объявляют через зарезервированные слова Const. Например,

Const Pi = 3?14159

Const Course = “Informatics”

VB5 имеет только набор встроенных констант, например, VbCrLf или VbOrOnly. Их можно вставлять в текст программы из окна Object Browser (F2 или меню View). Чтобы вставить Const в программе:

1) Курсор должен быть в окне кода.

2) В окне Object Browser щелкнуть на кнопке Copy to Clipboard.

3) Перейти в программе на место вставки и нажать Ctrl+V.

Встроенные функции

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

Строковые функции:

= Space (число пробелов) - выдает строку, состоящую из одних пробелов, причем число символов в строке определяется параметром в скобках.

= String (число, строковое выражение $) - формирует строку, содержащую одинаковые символы.

Например, X$=String (10, “z”) - 10z

= Len (строковое выражение) - длина текущей строки с проблемами и напечатанными символами.

= Mid (строка, начало [, длина])

Mid (“Visual Basic”, 1,6) = “Visual”

Mid (“Visual Basic”, 8,6) = “Basic”

Mid (“Visual Basic”, 8) = “Basic”

Пример. Подсчет числа точек в строке

Points % = 0

Length % = Len (Text $)

For I% = 1 to Length %

If Mid (Text $, I%, 1) = “.” then

Points $ = Points $ + 1

End If

Next I%

= Left (cтрока, № до позиции)

= Right (строка, с № позиции)

Функцию Mid можно использовать для изменения содержания внутри текущей строки. Например

X $ = “Best Basic”

Mid (X $,1,5) = “Quick”

какое количество символов

с какого символа будет взято из новой строки

вставляется новая

строка поверх части старой

= Insert ([начальная позиция], строка для поиска, подстрока)

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

Text $ = “QuickBasic”

X $ = Instr (1, Text $, “Basic”)=6.

Если подстрока не найдена Instr возвращает нулевое значение (False).

Пример.

If Instr (Text $, “?”) then

Print “символ найден”

Else

Print “Не найден”

End If

= LСase, = UСase - преобразует все символы строки в нижний (верхний) регистр

Вместо Lcase $ Ucase$

= Str lomp - для сравнения строк

Пусть X = StrComp (A$, B$) =

Если A$ или B$ пуста, то х=NULL

Если использовать StrComp (A$,B$,1) - регистр не учитывается, а если StrComp (A$,B$,0) - регистр учитывается.

= Trim (строка $) - уничтожает пробелы начале и конце строки

LTrim (строка $) - уничтожает пробелы в левой части строки

RTrim(строка $) - уничтожает пробелы в правой части

Все строковые функции, за исключением Mid, не изменяют строку, а создают ее копию и потом с ней работают.

Управляющие структуры в программе

Определенные циклы

For _ Next

For I% = 1 to 10 (% - целочисленный тип для ускорения работы цикла)

Print I%

Next I%

Цикл завершается, не в тот момент, когда значение счетчика равняется конечному, а когда оно превышает его.

Пример. Печать всеми доступными шрифтами экрана.

Private Sub Form_Click()

Dim I As Integer

For I=0 to Screen.FontCount - 1

FontName = Screen.Fonts (I)

Print “Это шрифт”; Screen.Fonts (I)

Next I

End Sub

Неопределенные циклы

Не выполняются фиксированное число раз. Цикл может выполняться или нет в зависимости от результата, вычисляемого внутри цикла

Do


Страница: