Шаг 33.
Пользовательские типы. Строковые типы (общие замечания)

    На этом шаге мы приведем общие сведения о строковых типах.

   


    По сравнению с реализациями Borland (Turbo) Pascal к традиционному типу String добавлены типы ShortString и AnsiString.


    Еще одно нововведение языка Object Pascal касается реализации строковых типов. Даже в первой 16-разрядной версии Delphi был только тип String. Начиная с 32-разрядной версии Delphi наконец-то появился новый способ представления строк, соответствующий стандарту ANSI, который построен на таком же основном принципе, что и String-строки (то есть строки, имеющие специальный дескриптор для указания длины), но, в отличие от String-строк, не имеющий ограничения на длину строки. Это естественно порадует сторонников такого способа представления строк, поскольку способ представления с дескриптором потенциально значительно мощнее и гибче, чем способ представления с завершающим нулем (PChar-строки), который принят в качестве стандартного для Windows.

    Итак, в Object Pascal строковые типы, также как целые и символьные, разделены на две категории.

  1. Фундаментальные строковые типы ShortString и AnsiString.
  2. Родовой строковый тип String.

    Фундаментальные строковые типы представляют две разновидности строк с дескриптором:

    Назначение зарезервированного слова String, которое обозначает родовой строковый тип, управляется директивой компилятора . При выключенном состоянии этой директивы {$Н-}, тип String соответствует коротким строкам, и работа с ними выполняется, как и в предыдущих реализациях. При включенной директиве {$Н+} тип String соответствуeт длинным строкам так же, как и предопределенный идентификатор AnsiString. По умолчанию устанавливается значение {$Н+}.

    Рассмотрим более подробно представление коротких (далее по тексту ShortString-строки) и длинных (далее по тексту AnsiString-строки) строк в памяти.




Предыдущий шаг Содержание Следующий шаг