Для хранения и обработки символов используются переменные типа AnsiChar и wideChar. Тип AnsiChar представляет собой набор ANSI-символов, в котором каждый символ кодируется восьмиразрядным двоичным числом (байтом). Тип WideChar представляет собой набор символов в кодировке Unicode, в которой каждый символ кодируется двумя байтами. Для обеспечения совместимости с предыдущими версиями поддерживаетсятип Char, эквивалентный AnsiChar.
Значением переменной символьного типа может быть любой отображаемый символ:
- буква русского или латинского алфавитов;
- цифра;
- знак препинания;
- специальный символ, например, "новая строка".
Переменная символьного типа должна быть объявлена в разделе объявления переменных. Инструкция объявления символьной переменной в общем виде выглядит так:
Имя: Char;
где:
- имя — имя переменной символьного типа;
- char — ключевое слово обозначения символьного типа.
Примеры:
otv:
char
;
ch:
char
;
Как и любая переменная программы, переменная типа char может получить значение в результате выполнения инструкции присваивания. Если переменная типа char получает значение в результате выполнения операции присваивания, то справа от знака := должно стоять выражение типа char, например, переменная типа char или символьная константа — символ, заключенный в кавычки.
В результате выполнения инструкций
cl :=
'*'
;
с
2
:= cl;
переменная cl получает значение присваиванием значения константы, а переменная с2 — присваиванием значения переменной cl (предполагается, что переменные cl и с2 являются переменными символьного типа).
Переменную типа char можно сравнить с другой переменной типа char или с символьной константой. Сравнение основано на том, что каждому символу поставлено в соответствие число (см. приложение 2), причем символу 'о' соответствует число меньшее, чем символу У, символу 'А' — меньшее, чем 'в', символу У — меньшее, чем а.
Таким образом, можно записать:
' 0 '
<
' 1 '
< . . <
' 9 '
< . . <
' A'
<
' B '
< . . <
'Z '
<
' a '
<
' b '
< . . <
' z '
Символам русского алфавита соответствуют числа большие, чем символам латинского алфавита, при этом справедливо следующее:
' А '
<
' В '
<
' В '
< . . <
' Ю '
<
' Я '
<
' а '
<
' б '
<
' в '
< . . . <
' э '
<
' ю '
<
'я'
В тексте программы вместо символа можно указать его код, поставив перед числом оператор #. Например, вместо константы 'Б' можно записать #193. Такой способ записи, как правило, используют для записи служебных символов или символов, которые во время набора программы нельзя ввести с клавиатуры. К примеру, часто используемый при записи сообщений символ "новая строка" записывается так: #13.
В программах обработки символьной информации часто используют функции chr и ord. Значением функции chr яеляется символ, код которого указан в качестве параметра. Например, в результате выполнения инструкции c:=Chr(32) переменной с будет присвоено значение пробел. Функция Ord позволяет определить код символа, который передается ей в качестве параметра. Например, в результате выполнения инструкции ki-ordf1*1 ) переменная k будет содержать число 42 — код символа *.