
- •Символьные строки
- •Строки, оканчивающиеся нулем, или нуль-
- •Реализация
- •строка фиксированной длины, хранящаяся в 32-битных блоках
- •строка ограниченной переменной длины с дескриптором
- •строка неограниченной длины, хранящаяся в
- •строка неограниченной длины, реализованная как непрерывный массив символов, заканчивающийся нуль-символом
- •Тип-строка, или строковый тип в Delphi
- •Операции
- •Присваивание
- •Функции и процедуры для работы со строковыми величинами
- •Процедура для удаления части строки S:
- •Тип-запись
- •Операции
- •Оператор WITH - вынесение идентификатора записи за
- •Тип-множество
- •Изображение значений типа множество:
- •Файловый тип
- •Типизированный файл - файл с указанным базовым типом.
- •Файловая переменная - представитель внешнего файла в программе.
- •При работе с файлами используется понятие текущего указателя файла.

Символьные строки
Строка символов, или символьная строка, - ОД, хранящий последовательность
символов.
Спецификация (что задается)
Строки фиксированной длины.
При объявлении ОД указывается определенная фиксированная длина.
Строка другой длины обрезается или дополняется пробелами до заданной длины.
•Строки переменной ограниченной длины:
•Память выделяется для максимально возможной
строки. При выполнения программы длина строки может меняться от 0 до заданной длины.
•Строки переменной длины:
•Память выделяется для фактической строки при выполнении программы
1

Строки, оканчивающиеся нулем, или нуль-
терминированные строки
- особый вид строк ( С, Object Pascal).
Строка реализована как массив символов
за последним символом записывается символ с кодом 0, или нуль-символ (#0).
1 и 2 подходы к представлению строк: память для ОД распределяется статически - на этапе компиляции.
3 и 4 подходы: память распределяется динамически
- во время выполнения программы.
2

Реализация
Для ограниченных строк переменной длины
используется дескриптор, указывающий
максимальную и фактическую длину строки, содержащейся в ОД.
Для представления строк неограниченной длины используется динамическое управление
ресурсами памяти.
На аппаратном уровне обычно поддерживаются только строки постоянной длины
Для реализации остальных способов используется программное моделирование.
Все операции основаны на программном моделировании.
3

строка фиксированной длины, хранящаяся в 32-битных блоках
4

строка ограниченной переменной длины с дескриптором
(текущая длина, максимальная длина)
5

строка неограниченной длины, хранящаяся в
32-битных блоках
6

строка неограниченной длины, реализованная как непрерывный массив символов, заканчивающийся нуль-символом
7

Тип-строка, или строковый тип в Delphi
Идентификатор |
длина |
память |
|
ShortString, String[n] 255 |
до 256 байт |
||
String ~231 |
до 2GB |
|
|
WideString |
~230 |
до2GB |
|
Нуль-терминированные строки
Type TMyNullTermString = array[0..15] of Char;
(или через указатель тип PСhar)
Реализация
String, WideString – выделяется 4 байта для адреса начала строки, память для строки выделяется во время выполнения программы (хранятся коды символов, завершаемые#0)
8

ShortString = String[255]
Объявление пользовательского строкового типа: type идентификатор = string[длина];
длина - целая константа <=255.
Занимаемая память (в байтах): длина + 1
Указанная длина - максимально возможная, то есть строковая переменная объявляется с “запасом”.
Длина строки может изменяться в ходе выполнения программы.
Изображение значений: ‘символ1символ2...’
9

Операции
сравнения < > = <> <= >= конкатенация (соединение) +
Правила выполнения операции сравнения:
строки сравниваются посимвольно слева направо до первого несовпадения.
10