End Sub
End
End Sub
End If
Next J
Next I
Private Sub ВЫХОД_Click()
Рис. 3.10. Экранная форма c отображён-ными результатами выполнения програм-мы
3.7. Строковые данные
Константы строкового типа имеют вид: “Мороз”, “A + B”, “123 + ABC”, “+”, “C”. Поименованные константы объявляются в разделе Const.
Пример: Const L = “Введите значение:”, A = 15, B = 11, C = A*A + B
Графическое изображение символов:
“A”, “8”, “+” .
Кроме такого изображения, символ можно задать его кодом с помощью префикса #:
# 65 Þ “A” # 97 Þ “a” # 32 Þ “ ”.
Коды букв возрастают по мере смещения по английскому алфавиту А, В, С, D . . . . (# 65, # 66, # 67, #68 . . .). В русифицированных системах такая закономерность выдерживается и для кириллицы. Это даёт возможность упорядочивать строковые значения по алфавиту.
Объявление строковых данных
Переменные строкового типа объявляются так:
Dim имя_переменной As String ‘длина до 65000 байтов
Или: Dim имя_переменной As String*n ‘длина до n байтов
Текущая длина строковой переменной, т.е. длина размещённого в ней значения, может быть и меньшей. Так, у переменной, объявленной оператором Dim B As String , при выполнении оператора B = “Протокол”, текущая длина сделается равной восьми символам (байтам).
Вместо Dim могут использоваться Private, Public.
Может задаваться также параметр Static.
Операции над строками
Строки можно сцеплять с помощью знаков “&” или “+”.
Пример
T = “микро” : R = “ЭВМ” , тогда : T & R Þ “микроЭВМ”.
Строки можно сравнивать, даже если они разной длины:
“ABC” < “ABD” ‘Коды символов возрастают по мере смещения по алфавиту
“Иванов” < “Иванова”
Отсутствующие символы в более короткой строке имеют код (код пробела Þ #32), меньший кода любого поставленного символа.
Имеет значение и регистр символа: “A” < “a”.
Функции для работы со строками
Функция Len(S) – определение текущей длины строковой переменной или строковой константы (S: имя переменной, константы или значение константы).
Пример
. . .
Dim A As String
A = “мастер”
K = Len(A) ‘К = 6, текущая длина строки А составляет 6 символов (6 байт)
. . .
Функция Mid(S, i[,n]) выделяет из строкового выражения S начиная с i–ой
позиции n символов (если n не указано, то до конца строкового выражения).
Функция Left(S,n) выделяет с левого конца строки S n символов.
Функция Right(S,n) выделяет с правого конца строки S n символов.
Пример:
Dim S As String*15, S1 As String*5, S2 As String*10
S = “телевидение”
S1 = Mid(S, 5, 3) ‘S1 = “вид”
S2 = Mid(S, 5) ‘S2 = “видение”
Функция InStr ([N,] S1, S [,L]) определяет позицию, начиная с которой первый символ строки S1 входит в строку S (строка,в которой производится поиск) в первый раз. Поиск в строке S начинается с позиции N (если N опущено, то с первой позиции). При этом, если параметр L опущен, т.е. L=0 (по умолчанию) – заглавные и прописные буквы различаются, если L = 1 – нет различия между заглавными и прописными буквами.
Пример
Dim S As String, S1 As String*30, S2 As String*25
Dim K1 As Integer, K2 As Integer
Dim K3 As Integer, K4 As Integer
S = “1234ABC56ABC” : S1 = “ABC” : S2 = “abc”
K1 = InStr (S1, S) ‘K1 = 5
K2 = InStr (6, S1, S) ‘K2 = 10
K3 = InStr (S2, S) ‘K3 = 0
K4 = InStr (S2, S, 1) ‘K4 = 5