Шаг 34.
Пользовательские типы. Строковые типы. Короткие строки ShortString

    На этом шаге мы рассмотрим короткие строки.

    Память для коротких строк так же, как и для массивов, выделяется статически. Как структура данных ShortString-строка аналогична одномерному массиву символов, но имеет существенное отличие от него. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании, а ShortString-строка имеет две разновидности длины:

    В ShortString-строках текущая длина строки указывается в нулевом (то есть имеющем индекс 0) элементе строки. В этот элемент записывается символ, код которого равняется значению текущей длины. Нулевой элемент строки при этом сделан невидимым для пользователя, однако использовать его в программах (записывать в него и извлекать из него информацию) хотя не рекомендуется, но в принципе допускается. Поскольку каждый символ занимает один байт памяти, то, при таком способе указания текущей длины, максимально допустимая длина строки будет ограничена максимальным значением, которое можно записать в один байт памяти. То есть максимальная текущая длина строки может быть не более 255 символов.

    Преимуществом такого способа представления строк является чрезвычайно простой доступ к значению текущей длины строки, что позволяет эффективно выполнять работу со строками. Недостаток состоит в ограничении на максимальную длину строки.


Рис.1. Представление в памяти короткой строки

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


    Примеры:
var	
    S1    : String [10] ;
    S2    : String [128] ;
    Smax1 : String;
    Smax2 : ShortString;

    Если длина в описании типа String не указывается, то по умолчанию принимается максимальная длина, равная 255 символам.


    Замечание. Предопределенный идентификатор ShortString всегда соответствует короткой строке максимальной длины в 255 символов и указания какой-либо другой длины не допускает.

    На следующем шаге мы рассмотрим длинные строки.




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