Строковые типы данных



Таблица 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 приведен список операций, которые допустимы над множествами.



Содержание раздела