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