Рядки можуть бути представлені наступними типами: shortstring, Longstring і widestring. Розрізняються ці типи гранично допустимої довжиною рядка, способом виділення пам’яті для змінних і методом кодування символів.
Перемінної типу shortstring пам’ять виділяється статично, т. е. до початку виконання програми, і кількість символів такого рядка не може перевищувати 255. Змінним типу Longstring і widestring пам’ять виділяється динамічно – під час роботи програми, тому довжина таких рядків практично не обмежена.
Крім перерахованих вище типів можна застосовувати універсальний cтроковий тип String. Тип String еквівалентний типу Shortstring.
Змінна строкового типу повинна бути оголошена в розділі оголошення змінних. Інструкція оголошення в загальному вигляді виглядає так:
Ім’я: String;
або
Ім’я: String [довжина]
де:
- ім’я – ім’я змінної;
- string – ключове слово позначення строкового типу;
- довжина – константа цілого типу, яка задає максимально допустиму довжину рядка.
Приклад оголошення змінних строкового типу:
name: string [30]; buff: string;
Якщо в оголошенні строкової змінної довжина рядка не вказана, то її довжина задається рівною 255 символів, т. е. оголошення
<pre>
stroka: string [255]; stroka: string;
</pre>
еквівалентні.
В тексті програми послідовність символів, що є рядком (строкової константою), полягає в одинарні лапки. Наприклад, щоб привласнити строкової змінної parol значення, потрібно записати:
parol: = 'Великий секрет'; або parol: = '2001';
Слід звернути увагу, що інструкція parol: = 2001; невірна, тому що тип константи не відповідає типу змінної. Під час компіляції цієї інструкції буде виведено повідомлення: incompatible types: ‘Char’ and ‘Integer’ (типи Char і Integer несумісні).
Використовуючи операції =, <, >, <=, >= і о, про, змінну типу string можна порівняти з іншою змінної типу string або зі строковою константою. Рядки порівнюються посимвольний, починаючи з першого символу. Якщо все символи порівнюваних рядків однакові, то такі рядки вважаються рівними. Якщо в однакових позиціях рядків знаходяться різні символи, більшою вважається той рядок, у якій в цій позиції знаходиться символ з великим кодом. У табл. 3.1 наведені приклади порівняння рядків.
Таблиця 3.1. Порівняння рядків
Рядок 1 | 2-й рядок | Результат порівняння |
Іванов | Іванов | Рядки рівні |
Васильєва | Васильєв | Рядок 1 більше рядка 2 |
Алексєєв | Петров | Рядок 1 менше рядка 2 |
Іванова | Іванов | Рядок 1 більше рядка 2 |
Крім операції порівняння, до строкових змінних і констант можна застосувати операцію складання, в результаті виконання якої виходить новий рядок. Наприклад, в результаті виконання інструкцій
f irst__name: = 'Іван'; last_name: = 'Іванов'; ful_name: = first_name + last_name; змінна fui_name отримає значення 'Іван Іванов'.