Содержание     Функции ASCII Выделение символов из строки Изменение регистра символов Операции с пробелами Преобразование строки в число  
 

 

Обработка строк

 

В этой главе рассмотрим функции, которые осуществляют обработку строк. В QBASIC функция состоит из имени и аргументов, которые заключаются в круглые скобки и располагаются всегда за именем функции. Значения функций обработки строк могут быть или типа STRING, или принадлежать к группе арифметических типов данных. Функции, наряду с переменными и константами, применяют в качестве составляющих оператора или используют при составлении выражений или логических условий. Естественно, зна- чение функции должно быть совместимо с остальными составляющими оператора, например, в арифметическое выражение нельзя встраивать функцию, значение которой является строковым выражением.

 

1. Определение длины строки

Функция LEN выдает длину строки, т.е. количество символов в строковом выражении.
 

Пример:
DIM a$, 1аеngе%
PRINT LEN("Сегодня понедельник")
INPUT "Ввести текст ";а$
1aenge% = LEN(a$)
PRINT a$; "Длина ";1аеnge," символов "

2. Получение символов кода ASCII

Функция CHR$ преобразует ASCII-код в соответствующий символ (ASCII=American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Аргумент функции — число типа INTEGER в диапазоне от 0 до 255.
Соответствие кодов ASCII определенным символам дано в ASCII-таблице, размещенной в справочнике (Help) OBASIC. Также можно воспользоваться следующей программой:

'ASCII-символьное предложение
DIM ascll%
DO
INPUT "Ввести ASCII-значение ", ascii%
LOOP UNTIL ascii% > 0 AND ascii% <= 256
PRINT "Код ASCII "; ascll%;" соответствует символу ";CHR$(ascii%)

3. Получение ASCII-кода символа
Функция ASC — обратная по отношению к функции CHR$. Аргумент функции ASC — символ, а значение функции — соответствующий этому символу ASCII-код.
 

Пример: PRINT ASC ("А")
 

4. Выделение левых крайних символов строки

Функция LEFT$ выделяет крайние слева символы строки. Вызов функции:
LEFT$ (Строка, Число)
Строка - Строка, из которой выделяются символы.
Число - Величина типа INTEGER, которая задает количество выделяемых символов.
 

Пример: PRINT LEFT$ ("Хелло, QBASIC", 5)

5. Выделение правых крайних символов строки
Функция RIGHT$ выделяет крайние справа символы строки. Вызов функции:
RIGHT$ (Строка, Число)

Строка- Строка, из которой выделяются символы.
Число- Значение типа INTEGER, в котором указывается количество выделяемых справа символов.
 

Пример: PRINT RIGHTS ("Хелло, OBASIC, 5)

 

6. Выбор подстроки


Функция MID$ копирует из строки любой ее фрагмент.
MID$ (Строка, Начало, Длина)
Строка - Строка, из которой должны выделятся символы.
Начало - Позиция, с которой начинается выбор фрагмента.
Длина - Длина подстроки.

Пример:

' MID$ - функция
DIM A$, i%, j%
А$=" Доброе утро"
1%=3
J%=5
PRINT MID$ ("Хелло, QBASIC",4,4)
PRINT MID$(aS,i%,j%)

7. Получение строчных символов

Функция LCASE$ возвращает заданную строку в виде строчных букв. Пользуясь этой функцией, следует принять во внимание, что аргументы для LCASE$ расположены в подмножестве символов, коды которых лежат в диапазоне от 32 до 127. Следующие 128 символов (от 128 до 256) предназначены для кодирования символов национальных алфавитов, псевдографики, математических и др.
 

Пример:
‘LCASE$
PRINT LCASE$ ("HUT OF BROWN NOW SIT DOWN")

8. Получение заглавных символов
Функция UCASE$ противоположна функции LCASE$ и возвращает заданную строку в виде заглавных букв. Следует принимать во внимание тот факт, что аргументом для UCASE$ могут быть лишь символы, коды которых расположены в диапазоне от 32 до 127.
 

Пример:
‘UCASE$
PRINT UCASE$ ("hut of brown now sit down")

9. Устранение ведущих пробелов
Функция LTRIM$ устраняет в строке ведущие пробелы. Возвращенное значение сдвинуто влево.
Пример:
'LTRIM$
DIM wort$, lwort$
wort$ = " Сдвиг влево"
Iwort$= LTRIM$(wort$)
PRINT wort$
PRINT LEN(wort$)
PRINT
PRINT Iwort$
PRINT LEN(lwort$)


10. Устранение последних пробелов
Функция RTRIM$ убирает в строке последние пробелы.
 

Пример:
‘RTRIM$
DIM wort1$, wort2$
wort1$= "левый
wort2$=" и правый"
PRINT wort1$+wort2$
PRINT PTRIM$(wort1$)+wort2$

11. Создание строки из пробелов
Функция SPACE$ создает строку из пробелов. Аргумент функции — длина этой строки.
 

Пример:
DIM leer$
leer$-SPACES$(45) PRINT LEN(leer$)

12. Преобразование строки в число
Функция VAL преобразует число из строкового представления в числовое. Предполагается, что преобразуемая строка содержит допустимые для представления чисел символы. Если нецифровой знак встречается первым в строке, то преобразование невозможно и значение функции равно нулю.
 

Пример:
PRINT VAL("234.23) PRINT VAL("Hallo") PRINT VAL("43D12)