Навигация
Оглавление
Короткие строки

Короткая строка объявляется с помощью идентификатора типа ShortString или зарезервированного слова string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины, например:

var
Address: ShortString;
Person: string[30];

Короткая строка может иметь длину от 1 до 255 символов. Предопределенный тип данных ShortString эквивалентен объявлению string[255].

Реальная длина строки может быть меньше или равна той, что указана при ее объявлении. Например, максимальная длина строки Friend в примере выше составляет 30 символов, а ее реальная длина - 9 символов. Реальную длину строки можно узнать с помощью встроенной функции Length. Например, значение Length(Friend) будет равно 9 (количество букв в слове Alexander).

Все символы в строке типа ShortString пронумерованы от 0 до N, где N - максимальная длина, указанная при объявлении. Символ с номером 0 - это служебный байт, в нем содержится реальная длина короткой строки. Значащие символы нумеруются от 1. Очевидно, что в памяти строка занимает на 1 байт больше, чем ее максимальная длина. Поэтому значение SizeOf(Friend) будет равно 31.

type
TName = string[30];
var
Name: TName;
const
FriendName: TName = 'Alexander';

Обратиться к отдельному символу можно так же, как и к символу обычной строки. Например, выражения FriendName[1] и FriendName[9] возвращают соответственно символы 'A' и 'r'. Значения FriendName[10] .. FriendName[30] будут случайными, так как при объявлении типизированной константы FriendName символы с номерами от 10 до 30 не были инициализированы. Символы, получаемые в результате индексирования короткой строки, принадлежат типу Char.

Поскольку существует два типа строк: обычные (длинные) строки и короткие строки, возникает закономерный вопрос, можно ли их совмещать. Да, можно! Короткие и длинные строки могут одновременно использоваться в одном выражении, поскольку компилятор языка Delphi автоматически генерирует код, преобразующий их тип. Более того, можно выполнять явные преобразования строк с помощью конструкций вида ShortString(S) и AnsiString(S).

 

Сайт создан в системе uCoz