Строковые типы. Короткие строки ShortString

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

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

  • общую длину строки, которая характеризует размер памяти, выделяемый короткой строке при описании;
  • текущую длину строки (всегда меньше или равную общей длине), которая показывает количество смысловых символов короткой строки в каждый конкретный момент времени.

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

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


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

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

   
Примеры:

var	
    S1    : String [10] ;
    S2    : String [128] ;
    Smax1 : String;
    Smax2 : ShortString;

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

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

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



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

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