Строковые типы данных
Таблица 2.4. Строковые типы данных
Тип данных |
Максимальная длина |
Занимаемая память |
Используется для: |
ShortString |
255 символов |
2—256 байт |
совместимости с предыдущими версиями языка |
AnsiString |
2^31 символов |
4 байт— 2 Гбайт |
символов ANSI, строк переменной длины |
WideString |
2^30 символов |
4 байт— 2 Гбайт |
символов Unicode, COM-серверов и интерфейсов |
Кроме того, наиболее часто применяется тип данных String. Свойства данного типа зависят от директивы компилятора {$H}: если она включена {$H+}, то данный тип эквивалентен типу AnsiString. Если же она выключена {$H-}, то тип String будет равносилен типу ShortString. По умолчанию данная директива выключена.
Строки, по своему определению, являются массивами символов. Поэтому для обращения к любому символу строки достаточно указать название строковой переменной и номер символа (как при обращении к элементу массива):
var
A: Char;
MyString: String;
begin
A:=MyString[10];
end;
Кроме перечисленных в табл. 2.4 строковых типов данных, имеется еще один тип PChar, который является строкой с нулевым окончанием, т. е. в конце строки стоит код 0. Длина строки типа PChar может быть любой, но, естественно, не более чем объем памяти компьютера.
Множества
Множество — это набор данных, относящихся к одному и тому же простому типу. Значения входящих в множество элементов ограничены только своим простым типом. Количество элементов множества не должно превышать 256. Описание множественного типа можно осуществить так:
set of Тип данных;
Рассмотрим способ задания множества целых чисел путем определения промежутка чисел:
type
TSomeInts = 1..250;
TIntSet = set of TSomeInts;
В данном примере мы создаем тип множества TIntSet, который содержит набор целых чисел от 1 до 250. Перед этим мы создали свой тип TSomeInts, который является частью типа integer. Мы можем создать это же множество другим способом:
type TIntSet = set of 1..250;
В общем случае, элементы множества задаются с помощью простого их перечисления в квадратных скобках через запятую. Например, если ранее была записана представленная выше строка определения типа TIntSet, можно задать множества Set1 и Set2:
var Set1, Set2: TIntSet ;
. . .
Set1 := [1, 3, 5, 7, 9]; Set2 := [2, 4, 6, 8, 10]
Кроме того, вы можете задавать множества непосредственно в объявлении переменных с помощью конструкции set of:
var MySet: set of ' a ' . . ' z ' ;
...
MySet := [ ' a ' , ' b ' , ' c ' ] ;
В табл. 2.5 приведен список операций, которые допустимы над множествами.