Опрос

Что вас больше интересует?

  • игры для nokia
  • темы на телефон
  • программы на мобильный
  • обзоры мобильных телефонов


 

Какие игры вы предпочитаете?

  • игры для мальчиков
  • игры для девочек
  • драки
  • стрелялки
  • логические игры
  • спортивные


 

счетчики

Спонсор раздела:

Строковый тип

Статьи

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

Исторически в Delphi 1.0 появился тип данных ShortString. В памяти компьютера она представляет собой цепочку байтов, причем в первом байте содер-

жится значение длины текстовой строки, а в остальных - непосредственно информация. Другими словами, если вас зовут «Петя» (что составляет 4 символа), то в служебном байте окажется четверка, а в оставшихся четырех байтах - соответственно символы «П», «е», «т» и «я».

Физический формат строки AnsiString значительно сложнее. Официальная информация о том, каким образом создатели Delphi организовали хранение данных в этом типе строки, отсутствует. (Это говорит о том, что Borland оставляет за собой право изменять внутренний формат строки такого типа.) Однако серьезный программист обязан знать о следующих особенностях физического формата AnsiString.

Во-первых, это строка, заканчивающаяся нулем, - в самом последнем байте этой строки окажется символ #0. Во-вторых, форматом строки предусмотрена область, хранящая данные о количестве ссылок на эту строку. Благодаря тому что строка завершается нулевым символом, она прекрасно взаимодействует с функциями Windows API, а из-за наличия счетчика ссылок (хранящего данные о том, сколько строковых переменных ссылаются на одно и то же место в памяти) значительно упрощается операция копирования строки из переменной в переменную. В этом случае просто копируется указатель и осуществляется приращение счетчика ссылок.

Строки WideSt ring предназначены для работы с 16-битными символами, т. е. здесь на каждый символ отводится два байта. Таким образом, тип данных WideSt ring способен работать с символами из таблицы Unicode (UCS-2). Unicode -стандарт, рожденный в недрах Apple и Xerox в 1988 г. Спустя три года для совершенствования и внедрения Unicode был создан консорциум, в состав которого вошли более десятка ключевых компаний, в том числе и Microsoft.

Поскольку на каждый символ отводится два байта, Unicode позволяет кодировать 65 536 символов, что более чем достаточно для работы с любым языком. Поэтому разработчики Unicode решили определить местоположение символов каждого из ключевых мировых языков (табл. 1.7) и расширить набор символов огромным количеством технических символов. На сегодняшний день определено около 35 тысяч кодовых позиций и еще около 30 тысяч позиций свободны.

При объявлении переменной строкового типа допускается явным образом ограничить ее длину, для чего в квадратных скобках указывают количество символов в строке:

var Name : string[40];

Объявленная таким образом переменная занимает в памяти количество байт, равное длине строки + 1 байт.

Структурные типы

Основное назначение структурных типов - совместное хранение множества однотипных или разнотипных значений. Различают следующие разновидности структурных типов:

• массивы множества классы

• записи файлы • указатели на классы

Первые три типа будут рассмотрены в этой главе, а файлы, классы и указатели на классы - несколько позже.

Добавить комментарий


Защитный код
Обновить