Сравнение текстовых переменных

Сравнение текстовых переменных проводится с помощью стандартных операторов сравнения: =, >, <, >=, <=, <>. В ходе сравнения компьютер анализирует три основных параметра: количество символов, последовательность ASCII кодов и номера ASCII - кодов. Программа анализирует только соответствующие знаки: первый знак первой переменной сравнивается с первым знаком второй переменной, второй знак со вторым и так далее.

Переменные равны, если они содержат равное количество одинаковых знаков, расположенных в одинаковой последовательности.

Сравнение текстовых переменных: равенство
Равны Не равны Причина
"aa"="aa" "aa"¹" aa" Разное число знаков
"10"="10" "10"¹"01 Нарушена последовательность знаков
"Аврора"="Аврора" "Аврора"¹"аврора" "А" и "а" имеют разный код
"QB" = "Q" + "B" "norma"¹"почта" На разных языках

 

 

Сравнивать переменные на равенство и выводить сообщение о результате можно в алгоритмах на основе оператора IF: INPUT A$: INPUT B$ IF A$ - В$ THEN PRINT "Равны" ELSE PRINT "He равны"

Одна текстовая переменная больше другой, если в ходе опарного сравнения, соответствующих знаков очередной ее символ имеет ASCII-код больше, чем соответствующий знак сравниваемой переменной. Как только обнаруживается знак, ASCII-код которого больше или меньше, чем у соответствующего знака второй переменной, процесс сравнения заканчивается и программа выводит результат.

Этот же принцип используется при сортировке списков. Сначала машина сравнивает первые знаки. Если они равны, то сравниваются вторые, третьи и так далее. Таким образом, сортируют даже строки, имеющие в начале одинаковые наборы символов.

 

Сравнение текстовых переменных: неравенство
Больше Причина
"ww2" > "ww" Три знака больше двух, если первые два знака равны
"ww2" > "wwO" ASII-код 2 (50), больше ASII-кода 0 (48)
"f > "p" ASII-код буквы f (102) больше F (70)
"A" > "A" ASII-код русской буквы А (128) больше ASII-кода латинской буквы А (65)
"file.dat" > "file.bas" ASII-код буквы d больше b
"21" > "2"+"00" ASII-код цифры 1 больше, чем ASII-код цифры 0

 

Инструменты обработки текстовых величин

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

Оператор Описание
1. Функция LEN Функция предназначена для определения количества симво­лов в текстовой переменной
2. Функция LEFT$ Функция применяется для выделения заданного количества левых (первых) символов текстового выражения.
3. Функция RIGHT$ Функция аналогична функции LEFT$, только предназначена для выделения указанного количества правых (последних) символов переменной.
4. Функция MID$ Функция предназначена для выделения n символов из сим­вольного выражения, начиная с k-го.
5. Оператор MID$ Оператор предназначен для замены n символов тексто­вой переменной, начиная с k-го, на знаки другого символьно­го выражения.
6. Функция INSTR Функция определяет, входит ли одна текстовая переменная в другую
7. Функции LTRIM$ и RTRIM$ Эти функции используются для удаления первых (левых) и последних (правых) пробелов текстового выражения, если начальные или концевые пробелы есть.
8. Функция ASC Функция возвращает код ASCII, соответствующий указан­ному знаку.
9. Функция CHR$ Выводит на экран символ, соответствующий определенному номеру в таблице ASCII.

Функция LEN

Функция предназначена для определения количества симво­лов в текстовой переменной.

LЕN (символьное_выражение)

Символьное_выражение — выражение, результат которого пред­ставлен величиной текстового типа. Символьным выражением может быть отдельная текстовая переменная, текст в кавыч­ках, сумма переменных, символьная функция с соответствую­щим аргументом и пр.

Пример1. Определить количество знаков в текстовой переменной и в сумме текстовой переменной и строки текста в кавычках.

A$ = “Информатика”

X = LEN (A$): PRINT X

PRINT LEN(A$ + “BASIC”)

Результат пример 1:

Работа программы. Первая функция LEN вернула количество символов в переменной А$. Затем это значение было при­своено переменной X и выведено, на экран. Вторая функция LEN определила количество символов в сумме переменной А$ и строки текста в кавычках.

Функция LEFT$

Выделен­ные символы можно присвоить другой переменной или использовать как часть общего выражения. Содержание исход­ной строки не изменяется.

LЕFТ$ (символьное_выражение. N)

Здесь символьное_выражение — текстовая переменная, символы в кавычках или выражение, результатом вычисления которых является строковое значение;

N — количество левых знаков символьного выражения. N может быть числом, переменной или математическим выражением с целым положительным результатом.

Пример 2. Примеры работы функции LEFT$.

А$ = "Microsoft"

В$ = LEFT$(A$. 5): PRINT B$ '1

PRINT LEFT$(A$, LEN(A$) - 4) '2

PRINT LEFT$("Computer". 4) +"IBM" '3

Результат:

Micro

Micro

CompIBM

Работа программы. Первая строка иллюстрирует простейший случай. Функция LEFT$ выделяет первые 5 символов тексто­вой переменной и присваивает их переменной В$. В строке '2 число выделяемых символов задано выражением с участием текстовой функции. Запись LEN(A$) - 4 дает возможность вы­делить все первые знаки переменной А$, кроме последних четырех. Строка '3 показывает, что выделенные знаки могут использоваться как часть общего выражения, в примере они участвуют в сумме.

Функция RIGHT$

Функция аналогична функции LEFT$, только предназначена для выделения указанного количества правых (последних) символов переменной.

RIGHT$ (сиивольное_выражение. N)

Описание аргументов функции соответствует описанию аргументов функции LEFT$, приведенных выше.

Функция MID$

Функция предназначена для выделения n символов из сим­вольного выражения, начиная с k-го.

МID$(символьное_выражение. k [ . n])

Здесь символьное_выражение — строка, из которой выделяется указанное число символов, k — номер символа, с которого начинается выделение. Если значение k больше, чем количе­ство символов в анализируемом тексте, то МID$ возвращает строку нулевой длины (""). Если значение k равно нулю или отрицательно, то появляется сообщение Illegal function call (Неверный вызов функции). n — количество последователь­ных символов, которое нужно выделить. Если n не указано или n < k, то выделяются все символы, с k-го и до конца стро­ки. При n = 0 функция возвращает, пустую строку.

В качестве k и n можно ставить числа, переменные или расчетные выражения с числовым результатом. Дробные зна­чения автоматически округляются до целых чисел по прави­лам математики.

Пример 3. Примеры работы, функции МID$.

А$ = "ИНФОРМАТИКА"

M$ = MID$(A$, 3, 6)

PRINT M$

PRINT MID$(A$, 3)

Результат:

ФОРМАТ

ФОРМАТИКА

Работа программы. Первая функция MID$ выделяет 6 после­довательных знаков, начиная с третьего, из текстовой пере­менной А$ и присваивает их переменной М$. Вторая функция MID$ возвращает все символы А$, начиная с третьего, потому что не указано количество выделяемых знаков.

Оператор MID$

Оператор MID$ предназначен для замены n символов тексто­вой переменной, начиная с k-го, на знаки другого символьно­го выражения. Оператор изменяет значение текстовой пере­менной. Согласно формату он замещает n знаков текстовой переменной, начиная с k-го, на первые n знаков текстового выражения, стоящего справа от знака равенства.

Пример 4:

А$ = "123456"

МID$(А$, 3, 2) = "abc"

PRINT A$

Результат:

12аb56

Два знака переменной А$, начиная с третьего, были заме­щены первыми двумя знаками выражения abc.

Формат оператора:

МID$(текст._перем. ., k[,n]) = символьное_выражение

k — номер знака в текстовой_переменной, с которого начинает­ся замещение. Если номер k больше длины текстовой пере­менной, равен нулю или имеет отрицательное значение, то выводится сообщение об ошибке Illegal function call (Невер­ный вызов функции), n — количество замещаемых символов. Если оно не указано или k + n больше длины текстовой пере­менной, то замещаются все символы переменной, начиная с k-го, но длина полученной строки не может превышать исходной длины текстовой_переиённой. символьное_выражение - строка, первые n символов которой внедряются в текстовую переменную. Если символов в выражении меньше n, то ис­пользуется столько знаков, сколько есть.

Пример 5. Примеры работы оператора MID$.

A$ = "123456": MID$(A$, 1, 3) = "abc" '1

PRINT A$

A$ = "123456": MID$(A$, 5, 3) = "abc" '2

PRINT A$

A$ = "123456": MID$(A$, 2) = "abcdefghijk" '3

PRINT A$

A$ = "123456": MID$(A$, 4!, 2) = MID$("abc", 2, 1) '4

PRINT A$

Результат:

abc456

1234ab

1abcde

123b56

Работа программы, В строке '1 три символа, начиная с пер­вого, заменяются тремя символами выражения abc. В строке '2 размещена попытка заменить три символа, начиная с пято­го, но в исходной переменной всего 6 знаков, поэтому заме­щены только пятый и шестой. В строке '3 не указан второй параметр оператора MIDS (количество замещаемых знаков). Программа заменяет все знаки от второго до конца строки. Итоговое значение содержит 6 символов, потому что именно столько знаков содержала переменная А$ в начале работы оператора. В строке '4 использованы оператор и функция MID$. Функция выделяет второй знак в abc, а оператор ставит его на место четвертого знака в переменной А$. Согласно ар­гументам оператора, замещаться должно два знака, но так как функция возвращает только один, то четвертый символ А$ замещен, а пятый остался без изменений.

Функция INSTR

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

INSTR([k], текст_выраж_1. текст_выраж_2)

Функция проверяет наличие текстового_выражения_2 в текстовом_выражении_1. Число k задает номер символа, с которого начинается поиск вхождения. Если число не указано, то по­иск начинается с первого знака.