
- •Раздел 10. Структурные типы
- •10.1. Массивы
- •10.1.1. Задание массивов
- •Voz [f] Godrozd [f].
- •Voz [Ivanov] Voz [Petrov]
- •10.1.2. Действия над элементами массивов
- •10.1.3. Действия над массивами
- •10.1.4. Типизованные константы типа массив
- •10.1.5. Уплотнение структурных данных в памяти
- •10.2. Строковые данные
- •10.2.1. Строковые константы
- •10.2.2. Строковые переменные
- •10.2.3. Встроенные функции, определенные над данными строковых типов переменной длины
- •Copy (St, Poz, n)
- •Concat (St1[, St2, ..., StN] )
- •Length (St)
- •UpperCase (St)
- •LowerCase (St)
- •SetLength (St, n)
- •10.2.4. Встроенные процедуры, определенные над данными строковых типов переменной длины
- •Delete (St, Poz, n)
- •Insert (St1, St2, Poz)
- •10.2.5. Строковые ресурсы
Insert (St1, St2, Poz)
Вставляет строку St1 в строку St2, начиная с позиции Poz. Если значение Poz больше текущей длины St2, то результат равен сцеплению строк St2 + St1. St2, St1 имеют тип String, а Poz – Integer.
Пример 10.24.
Продолжение примера 10.23.
Вставка подстроки.
St1 := ‘Минск’;
St2 := ‘is a capital of a republic’;
Insert (St1, St2, 1); {в St2 значение ‘Минск is a capital of a republic’}
--------------------------------
Str (I, St)
Преобразует числовое значение величины I и помещает результат в строку St. Величина I должна иметь целочисленный или вещественный тип, St – тип String.
Пример 10.25.
Продолжение примеров 10.23 – 10.24.
Преобразование числа в строку.
I := 4716;
Str (I, St3); {в St3 значение ‘4716’}
--------------------------------
Val (St, I, Cod)
Преобразует значение St в величину целочисленного или вещественного типа (в зависимости от типа параметра I) и помещает результат в I. Значение St может содержать незначащие пробелы в начале и не может в конце. Cod – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, то значение Cod равно нулю. Если ошибка обнаружена (например, символьное значение переводится в цифровое), то Cod будет содержать номер позиции первого ошибочного символа, а значение I будет неопределено. St имеет тип String, I и Cod – тип Integer.
Пример 10.26.
Продолжение примеров 10.23 – 10.25.
Преобразование строки в число.
St3 := ‘255’;
St4 := ‘48A6’;
Val (St3, I, Cod); {в I значение 255, в Cod значение 0}
Val (St4, I1, Cod1); {значение I1 неопределено, в Cod1 значение 3}
--------------------------------
10.2.5. Строковые ресурсы
В языке Delphi существует специальный вид строковых данных — строковые ресурсы. Строковые ресурсы отличаются от строковых констант тем, что размещаются не в области данных программы, а в специальной области выполняемого файла, называемой ресурсами.
Данные программы загружаются вместе с кодом программы и остаются в оперативной памяти вплоть до завершения программы. В отличие от данных (констант и переменных) ресурсы подгружаются в оперативную память лишь по мере надобности.
В программе строковые ресурсы описываются аналогично строковым константам, но в разделе resourcestring:
resourcestring
SCreateFileError = 'Cannot create file: ';
SOpenFileError = 'Cannot open file: ';
Использование строковых ресурсов ничем не отличается от использования строковых констант. Обычно в качестве строковых ресурсов используются некоторые текстовые сообщения, которые занимают много места в памяти и нужны не часто. Например, сообщения об ошибках занимают достаточно много места в памяти и остаются не нужны до тех пор, пока в программе не возникнет ошибка. Замена текстовых сообщений может производиться непосредственно в выполняемом файле, т.е. без перекомпиляции программы.