«Обработка строковых данных» Delphi. Тема 7:7:
«Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе. 3. Операция сцепления строк. 4. Операции сравнения строк. 5. Строковые процедуры и функции. 6. Примеры обработки строк.
Символ – это элемент кодовой таблицы компьютера (буква, знак, управляющий символ). Каждый символ имеет свой уникальный численный код. Каждый символ занимает в памяти 1 байт (в кодировке ANSI), или 2 байта (в кодировке Unicode).
Строка - это последовательность (массив) символов. При использовании в выражениях символ и строка-константа заключается в кавычки-апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255 (статические строки), или практически неограниченны (динамические строки).
Для определения переменных символьного типа используются служебные слова: Char, AnsiChar (1 байт); WideChar (2 байта). Пример: Var c1:Char; c2:WideChar;
Для определения переменных строкового типа используются служебные слова String или ShortString, за которым может следовать заключенное в квадратные скобки значение максимально допустимой длины строки (статические строки), или LongString (динамические строки). Пример: Var S1, S2 : String[20]; S : LongString;
Соединяет несколько строк слева на право в одну. Знак операции: + (плюс). Примеры:
(=, <>, >, <, >=, <=) проводят сравнение двух строк. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в кодовой таблице. Результат выполнения операций имеет логический тип - (True, или False).
Delete(St,Poz,N) - удаление N символов строки St, начиная с позиции Poz. Delete( Алгоритм,1,4) = ритм Insert(Str1, Str2, Poz) - вставка строки Str1 в строку Str2, начиная с позиции Poz. Insert( форма, винтика,3)= информатика
Str (N,St) - преобразование числового значения величины N и помещение результата в строку St. После N может записываться формат преобразования. Str(5,S) ==> S = 5 ; Str(pi:4:2,S) ==> S = 3.14 Val (St,N,Cod) - преобразует строку St в величину целочисленного или вещественного типа и помещает результат в N. В переменной Cod возвращается код операции (0 - нет ошибки; n - n-й символ не может быть частью числа). Val( 5.2,R,Code) ==> R = 5.2; Code = 0 Val( 10 А кл.,R,Code) ==> R- не определено; Code = 3
Copy (St,Poz,N) - возвращает из строки St подстроку длиной N символов, начиная с позиции Poz. Copy( информатика,3,5) = форма Chr(N) - возвращает символ с кодом N. Chr(192) = А Ord(C) – возвращает код символа C. Ord( А ) = 192 Trim(St) – возвращает строку St, удалив в ней начальные и конечные пробелы.
Length (St) - вычисляет и возвращает текущую длину в символах строки St. Результат имеет целочисленный тип. Length( Я учусь программировать! ) = 24 Pos (Str1,Str2) - обнаруживает первое появление в строке Str2 подстроки Str1. Возвращаемый результат имеет целочисленный тип и равен номеру той позиции в строке Str2, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0. Pos( о, программирование ) = 3 Pos( не, алгоритм ) = 0
AnsiUpperCase(St) - возвращает строку, преобразовав все буквы к верхнему регистру (большие буквы). AnsiUpperCase( Среда Delphi! ) = СРЕДА DELPHI! AnsiLowerCase(St) - возвращает строку, преобразовав все буквы к нижнему регистру (маленькие буквы). AnsiLowerCase( Среда Delphi! ) = среда delphi!
1. Задан текст. Заменить в нём и на i. Подсчитать количество таких замен. var S:string; i, k : Integer; Begin {…Ввод строки S} k := 0; For i := 1 to length(S) do If S[i] = и then begin S[i] := i; k := k + 1; end; {…Вывод S, k} End.
2. Вывести в компонент Memo кодовую таблицу отображаемых символов. var i:Integer; Begin Memo1.Lines.Clear; For i := 32 to 255 do Memo1.Lines.Add(chr(i) + = + IntToStr(i)); End.