150 likes | 347 Views
«Обработка строковых данных». Delphi . Тема 7 :. «Обработка строковых данных» План темы:. 1. Понятие символа и строки. 2. Описание символов и строк в программе. 3. Операция сцепления строк. 4. Операции сравнения строк. 5. Строковые процедуры и функции. 6. Примеры обработки строк.
E N D
«Обработка строковых данных» Delphi. Тема 7:
«Обработка строковых данных»План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе. 3. Операция сцепления строк. 4. Операции сравнения строк. 5. Строковые процедуры и функции. 6. Примеры обработки строк.
1. Понятие символа и строки Символ – это элемент кодовой таблицы компьютера (буква, знак, управляющий символ). Каждый символ имеет свой уникальный численный код. Каждый символ занимает в памяти 1 байт (в кодировке ANSI), или 2 байта (в кодировке Unicode).
1. Понятие символа и строки Строка - это последовательность (массив) символов. ‘При использовании в выражениях символ и строка-константа заключается в кавычки-апострофы’. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255 (статические строки), или практически неограниченны (динамические строки).
2. Описание символов и строк в программе • Для определения переменных символьного типа используются служебные слова: Char, AnsiChar (1 байт); WideChar (2 байта). Пример: Var c1:Char; c2:WideChar;
2. Описание символов и строк в программе • Для определения переменных строкового типа используются служебные словаString илиShortString, за которым может следовать заключенное в квадратные скобки значение максимально допустимой длины строки (статические строки), или LongString (динамические строки).Пример: Var S1, S2 : String[20]; S : LongString;
3. Операция сцепления строк - Соединяет несколько строк слева на право в одну. Знак операции: + (плюс). Примеры: '2' + '3' = '23' '3' + '2' = '32' 'радио' + 'монтаж' = 'радиомонтаж'
4. Операции сравнения строк - (=, <>, >, <, >=, <=) проводят сравнение двух строк. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в кодовой таблице. Результат выполнения операций имеет логический тип - (True, или False). 'кит' > 'кот' = False ('абвг' = 'абвг') = True ('10 кл.' = '10 КЛ') = False
5. Строковые процедуры: • Delete(St,Poz,N) - удаление N символов строки St, начиная с позиции Poz. Delete(‘Алгоритм’,1,4) = ‘ритм’ • Insert(Str1, Str2, Poz) - вставка строки Str1 в строку Str2, начиная с позиции Poz. Insert(‘форма’,’интика’,3)=‘информатика’
5. Строковые процедуры: • 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
5. Cтроковые функции: Copy(St,Poz,N) - возвращает из строки St подстроку длиной N символов, начиная с позиции Poz. Copy(‘информатика’,3,5) = ‘форма’ • Chr(N) - возвращает символ с кодом N. Chr(192) = ‘А’ • Ord(C) – возвращает код символа C. Ord(‘А’) = 192 • Trim(St) – возвращает строку St, удалив в ней начальные и конечные пробелы.
5. Строковые функции: • Length (St) - вычисляет и возвращает текущую длину в символах строки St. Результат имеет целочисленный тип. Length(‘Я учусь программировать!’) = 24 • Pos (Str1,Str2) - обнаруживает первое появление в строке Str2 подстроки Str1. Возвращаемый результат имеет целочисленный тип и равен номеру той позиции в строке Str2, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0. Pos(‘о’,’программирование’) = 3 Pos(‘не’,’алгоритм’) = 0
5. Строковые функции: • AnsiUpperCase(St) - возвращает строку, преобразовав все буквы к верхнему регистру (большие буквы). AnsiUpperCase(‘Среда Delphi!’) = ‘СРЕДА DELPHI!’ AnsiLowerCase(St) - возвращает строку, преобразовав все буквы к нижнему регистру (маленькие буквы). AnsiLowerCase(‘Среда Delphi!’) = ‘среда delphi!’
6. Примеры обработки строк. 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.
6. Примеры обработки строк. 2. Вывести в компонент Memo кодовую таблицу отображаемых символов. var i:Integer; Begin Memo1.Lines.Clear; For i := 32 to 255 do Memo1.Lines.Add(chr(i) + ‘ = ‘ + IntToStr(i)); End.