Строковый тип
Строковый тип String (строка) в Delphi широко используется для обработки текстов. Данные В интерфейсе приложения ( в визуальных компонентах) значения данных как правило строковым типом. Этот тип является стандартным структурированным типом
В языке Delphi имеются строковые типы данных, которые перечислены в таблице 12.
Таблица 12.
Тип данных |
Максимальная длина |
Занимаемая память |
Используется для.. |
ShortString |
255 символов |
2 – 256 байт |
Совместимости с предыдущими версиями языка |
AnsiString |
2 в степени 31 символов |
4 байта – 2 Гбайта |
Символов ANSI, строк переменной длины |
Кроме того, наиболее часто применяется тип данных String. Для уменьшения объема выделяемой памяти в типе String можно указывать его длину.
Строки по своему определению являются массивами символов Char. Поэтому для обращения к любому символу строки достаточно указать название строковой переменной и номер символа (как при обращении к элементу массива) :
Пример
var
A: Char;
MyString: String; // длина определяется директивой компиляции
Name:String[20]; // длина 20
…..
MyString := ‘Строка символов’ ;
A := MyString [10]; // A = ‘м’
Name:=’Иванов’;
Строковая константа это набор символов заключенный в апострофы.
Пример
‘Пример’, ‘Строка =’’Qwerty’’’, ‘123456’, ''
Над строками допустима только одна операция “склеивание” -
Name:='Turbo' +’ ’ +’Pascal’;// значение ‘Turbo Pascal’
Сравнение строк выполняется посимвольно в соответствии с их кодами до первого несовпадения. Если одна из строк закончилась до первого несовпадения, то она считается меньшей. Пустая строка меньше любой строки.
Пример
'abcd' > 'abcD' { 'd'>'D' }
'abcd' > 'abc' { 'd'>'' }
'abc' < 'axxc' { 'b'<'x' }
'abcd' = 'abcd'
Существует ряд стандартных функций и процедур для работы со строками.
Функция Length(s) выдает длину строки s.
Функция Concat(s1, s2,.., sn) возращает строку s1+s2+..+sn.
Функция Copy(s, p, k) возвращает фрагмент строки s, который начинается в позиции p и имеет длину k.
Функция Pos(s1, s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли.
Процедура Delete(s, p, k) удаляет из строки s фрагмент, который начинается в позиции p и имеет длину k.
Процедура Insert(s, s1, p) вставляет в строку s подстроку s1, начиная с заданной позиции p.
Функция CompareStr (s1,s2 ) сравнивает строки и принимает отрицательное значение если s1<s2 , 0 если s1=s2 , положительное значение если s1>s2
Функция CompareText (s1,s2 ) то же без учета регистров
Функция TrimRight ( s ) удаляет пробелы справа ( TrimLeft ( s ) – слева )
Функция LowerCase (s) переводит в нижний регистр ( UpperCase (s) – верхний
Пример
var S,S1 : String; I: Integer;
……
S1:=’’;
for i:=Length(s) downto 1 do
S1:=S1+Copy(S, i, 1); // S1 состоит из символов S в обратном порядке.