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

 

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

Если имя стандартной функции заканчивается знаком $, то в результате ее вызова создается строка символов. Если $ в имени функции отсутствует, то результатом является целое десятичное число. При описании встроенных функций переменные x$ и y$ означают любые строковые выражения, а переменные m, n – выражения целого типа.

 

1. LEN(x$) – число символов в символьной строке, включая пробелы.

Cells(1,1)=LEN(“ИНФОРМАТИКА”) Þ 11.

2. Instr([n],x$,y$) – осуществляет поиск подстроки y$ в строке x$, начиная с символа т (если n не указано, то поиск осуществляется с 1-го символа)

Name$=“ИНФОРМАТИКА”

cells(1,2)= Instr(1,name$,”ФОРМА”) Þ 3

Обнаружив подстроку y$ в x$ функция INSTR возвращает номер позиции 1-го символа подстроки. Если подстрока не найдена, то возвращается ноль.

3. MID$(x$,n[,m]) – выделяет подстроку в m символов из строки X$, начиная с символа n. Если m опущено или кол-во символов <m, то выделяются символы, начиная с символа n до конца строки. Если m=0 или n>длины строки, то результатом выполнения функции будет пустая строка.

a$=mid$(«ПАЛИТРА»,2,4)

b$=MID$(«кон»,4,1)

a$=ЛИТР b$=””

4. SPACE(N) – формирует строку из n пробелов.

5. STRING$(n,x$) – формирует строку из n одинаковых символов, равных первому символу строки.

STRING$(80, «*»)

space(10)

string(5, «abc»)

*** .(80 символов.. ***_ _ _ _ _ _ _ _ _ _ aaaaa

6. Lcase$(x$) – переводит все символы строки в строчные буквы

7. Ucase$(x$) – переводит все символы строки в прописные буквы.

Test$= “СтрокА”

Cells(2,1)= Test$ => СТрокА

Cells(3,1)= Lcase$(Test$) 'Все строчные => строка

Cells(4,1)= Ucase$(Test$) 'Все прописные => СТРОКА

 

8. Функции преобразования строковых переменных в числовые и обратно.

STR$(числовое выражение) – возвращает строковое представление числа. (для положительных чисел слева добавляется пробел)

VAL(cтроковое выражение) – превращает строковое представление числа в числовое. Если строка начинается с нецифрового знака (_ + - цифра), то результатом выполнения является нуль.

 

«Поздравляем с Новым val(right$(Date$,4))+1 Годом»

date$= «12-22-2000» => 2000=> 2000+1=>

«Поздравляем с Новым 2001 Годом»

 

Пример 42. Программа сортировки символьного массива.

 

Sub main()

Dim a$()

n = 5

ReDim a$(n)

Call reada(a$(), n, 3)

Call sorts(a$(), n)

Cells(4, 1) = "Отсортированный массив"

For i = 1 To n

Cells(5, i) = a$(i)

Next i

End Sub

 

Sub reada(a$(), n, l)

For i = 1 To n

a$(i) = Cells(l, i)

Next i

End Sub

 

Sub sorts(a$(), n)

k = 0

m3: For i = 2 To n - k

If a$(i - 1) > a$(i) Then

c$ = a$(i)

a$(i) = a$(i - 1)

a$(i - 1) = c$

End If

Next i

k = k + 1

If k < n + 1 Then GoTo m3

End Sub

 

Данная программа демонстрирует не только возможности взаимодействия подпрограмм друг с другом, но и правило передачи массивов в подпрограмму: имя массива указывается в качестве формального параметра с пустыми скобками.