Символьные типы
Смысл символьных данных очевиден, когда они выводятся на экран или принтер. Тем не менее, определение символьного типа может зависеть от того, что подразумевать под словом символ. Обычно символьные типы данных задают схему взаимодействия между участками памяти разного объема и некоторым стандартным методом кодирования/декодирования для обмена символьной информацией. В классическом языке Pascal не задано никакой схемы, и в конкретных реализациях применялось то, что на том же компьютере мог использовать каждый.
В реализациях языка Pascal для первых микропроцессоров была применена 7-битовая схема, названная ASCII (American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Эта схема и поныне широко распространена, но информация хранится, как правило, в 8-битовых участках памяти. Дополнительный бит удваивает число возможных представлений символов, но реализации расширенного набора символов ASCII часто бывают далеки от стандарта. В данной версии Delphi определен набор 8-битовых символов, известный как расширенный (extended) ANSI (American National Standards Institute — Американский национальный институт стандартов). Как бы то ни было, символьную схему приходится воспринимать так, как ее воспринимает операционная система. Для оконных операционных систем фирмы Microsoft это схема ANSI, включающая ограниченное число предназначенных для вывода международных знаков. В стремлении же применить более обширный набор международных знаков весь компьютерный мир переходит к 16-битовой схеме, именуемой UNICODE, в которой первые 256 знаков совпадают с символами, определенными в схеме ANSI.
Для совместимости со всеми этими представлениями в Object Pascal определены два физических символьных типа и один логический.
Физические типы перечислены ниже.
AnsiChar | Однобайтовые символы, упорядоченные в соответствии с расширенным набором символов ANSI |
WideChar | Символы объемом в слово, упорядоченные в соответствии с международным набором символов UNICODE. Первые 256 символов совпадают с символами ANSI |
Символьные типы объемом в двойное слово (32 бит) отсутствуют.
Логический символьный тип именуется char. В классическом языке Pascal char— единственный символьный тип. В Delphi char всегда соответствует физическому типу данных AnsiChar. У американских программистов ассоциация символа с однобайтовой ячейкой памяти укоренилась за долгие годы настолько, что им зачастую просто не приходит в голову, что можно использовать другие схемы кодирования. Однако дискуссии по интернационализации программ в Internet и World Wide Web могут существенно изменить их отношение к проблеме объема символьных данных. Применяя логический тип char, следует делать реализации для других микропроцессоров и операционных систем, в которых char может определяться как WideChar. При написании программ, которые могут обрабатывать строки любого размера, для указания этого размера рекомендуется применять функцию SizeOf, не задавая ее жестко постоянной. Функция Ord (С), где С — любая переменная символьного типа, возвращает целое значение, которым символ С представлен в памяти.
Chr (X) | Преобразует целую переменную в переменную типа char с тем же порядковым номером. В Delphi это эквивалентно заданию типа Char (X) |
UpCase | Преобразует строчную букву в прописную |
Совет:
Процессор не различает типы char, определенные в C/C++ и Delphi. Однако функционально каждый из этих языков трактует данный тип совершенно по-разному. В C/C++ это целый тип, переменной которого можно присваивать целые значения. Переменной int можно присвоить символьное значение, а переменной char — целое. В Delphi символьные типы жестко отделены от численных. Для присвоения численному значению символьного здесь необходимо воспользоваться функцией Ord. В языке Basic один символ представляется так же, как и строка символов. Функция Chr из Delphi эквивалентна функции CHR$ из Basic. Функция Ord из Delphi, возвращающая код ANSI символьной переменной, подобна функции A3 С из Basic, аргумент которой представляет односимвольную строку.
- 7. Что такое электронная таблица?
- Ввод и редактирование данных
- Формат данных
- Функции и формулы
- Понятие формулы
- Понятие функции
- Мастер функций
- [Править]Применение в серверных приложениях
- [Править]Мультиплексирование
- Методы и средства защиты от несанкционированного доступа
- Криптография и шифрование Что такое шифрование
- Основные термины и определения криптографии
- Открытые ключи
- Проблемы использования открытых/закрытых ключей
- Сертификат
- [Править]Центры доверия
- Создание отчётов
- Изменение структуры отчёта
- Создание таблиц в режиме конструктора
- Формирование запросов на выборку
- Параметрические запросы
- Запросы на обновление
- Редактирование запросов
- Поля и записи
- Порядковые типы
- Целые типы
- Символьные типы
- Булевы типы
- Перечислимые типы
- Поддиапазонные типы
- Действительные типы
- [Править]Использование в форматах файлов
- 3.1. Выполнение задания
- 6.2 Построитель выражений
- Создание кнопочной формы с помощью диспетчера кнопочных форм
- Примечания
- Групповые функции в операторе select:
- Раторы сравнения
- Виды отношений
- Отношения в App Engine Один-ко-многим
- Один-к-одному
- Многие-ко-многим
- 2. Свойства алгоритмов.
- Вывод «Основные свойства алгоритмов»:
- 3. Способы описания алгоритмов.
- Тестирование программного обеспечения
- [Править]Уровни тестирования
- [Править]Статическое и динамическое тестирование
- [Править]Регрессионное тестирование
- [Править]Тестовые скрипты
- [Править]Тестирование «белого ящика» и «чёрного ящика»
- [Править]Покрытие кода
- Обеспечение целостности базы данных
- Электронная почта (e-mail)
- Группы новостей
- Службы мгновенных сообщений
- Основы tcp/ip
- Краткое описание протоколов семейства tcp/ip с расшифровкой аббревиатур
- Архитектура tcp/ip
- Уровни сетей и протоколы tcp/ip
- Краткое заключение