Текстовые типы

 

Текстовые (символьные) типы - это типы данных, состоящие из одного символа. В Windows используется код ANSI (по названию разработавшего этот код института - American National Standard Institute - американский национальный институт стандартизации). Множество значений символьного типа состоит из 256 различных символов, определенным образом упорядоченных, и содержит символы заглавных и строчных букв, цифр и других различных символов, включая специальные управляющие.

В Object Pascal есть три символьных типа: Char, AnsiChar, и WideChar (Таблица 15.3). Тип Char является стандартным типом Pascal. Он использовался и в Turbo Pascal и сейчас в Object Pascal. Типы AnsiChar, и WideChar были добавлены позднее.

 

Таблица 15.3 - Символьные типы данных

Название Размер, байт
Char
AnsiChar
WideChar

 

Char - любой символ из набора ANSI.

AnsiChar - символы, упорядоченные в соответствии с расширенным набором символов ANSI.

WideChar - это символы, упорядоченные в соответствии с международным набором символов UNICODE. Первые 256 символов совпадают с символами ANSI.

 

С типом CHAR работают следующие процедуры и функции:

- функция Ord (Ch), где Ch - любая переменная символьного типа, возвращает целое значение, которым символ Ch представлен в памяти, т.е. порядковый номер этого символа в таблице ANSI.

- для преобразования целой переменной в переменную типа char с тем же порядковым номером предназначена функция Chr(Ch).

- UpCase () преобразует строчную букву в прописную.

 

Тип CHAR упорядочен по алфавиту: ‘A’<‘B’<‘C’…<‘Z’. Это позволяет сравнивать буквы для их алфавитной сортировки. Наконец, тип CHAR эквивалентен типу BYTE – оба они занимают один и тот же объем памяти. Для эквивалентных типов можно применять операцию типизации, заключающейся в преобразовании типа в нужный. Например, чтобы напечатать символ с кодом n, необязательно делать так:

 

Label1.Caption:=CHR(n);

 

Есть другой способ:

 

Label1.Caption:=CHAR(n);

 

Здесь CHAR() – операция типизации. Возможна и обратная процедура для получения кода символа:

 

Label1.Caption:=IntToStr ((BYTE(c)))