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

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

   

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

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

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

  • Фундаментальные строковые типы ShortString и AnsiString.
  • Родовой строковый тип String.
  •    
    Фундаментальные строковые типы представляют две разновидности строк с дескриптором:

    • короткие строки, которые имеют стандартное для Borland (Turbo) Pascal представление. Этим строкам соответствует предопределенный идентификатор ShortString;
    • длинные строки, которые не имеют ограничений на длину. Этим строкам соответствует предопределенный идентификатор AnsiString.

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

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



    Вы можете оставить комментарий, или Трекбэк с вашего сайта.

    Оставить комментарий