Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Замена в строке всех вхождений одной подстроки, на другую

Delphi , Синтаксис , Текст и Строки



Автор: RhinoFC
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Зависимости: -
Автор:       Евгений Валяев (RhinoFC), rhinofc@sniiggims.ru, ICQ:55263922, Новосибирск
Copyright:   RhinoFC
Дата:        5 июня 2002 г.
***************************************************** }

function StrReplace(const Str, Str1, Str2: string): string;
// str - исходная строка
// str1 - подстрока, подлежащая замене
// str2 - заменяющая строка
var
  P, L: Integer;
begin
  Result := str;
  L := Length(Str1);
  repeat
    P := Pos(Str1, Result); // ищем подстроку
    if P > 0 then
    begin
      Delete(Result, P, L); // удаляем ее
      Insert(Str2, Result, P); // вставляем новую
    end;
  until P = 0;
end;

Эта функция Delphi, называемая StrReplace, заменяет все вхождения указанной подстроки (Str1) на другую подстроку (Str2) в заданном строке (Str). Функция принимает три параметра: исходную строку, подстроку для замены и подстроку для замены.

Разбивка кода:

function StrReplace(const Str, Str1, Str2: string): string;

Функция объявлена с тремя параметрами типа string: Str, Str1 и Str2. Ключевое слово const указывает, что эти параметры не изменяются внутри функции.

var
  P, L: Integer;
begin
  Result := Str;
  L := Length(Str1);

Функция инициализирует два целочисленных переменных: P (позиция) и L (длина). Переменная Result устанавливается в исходную строку (Str).

repeat
  P := Pos(Str1, Result); // ищем подстроку
  if P > 0 then
  begin
    Delete(Result, P, L); // удаляем ее
    Insert(Str2, Result, P); // вставляем новую
  end;
until P = 0;

Цикл repeat повторяется, пока не будет найдено больше подстрок (Str1) в строке результата. В цикле:

  • Функция Pos используется для поиска позиции первого вхождения подстроки (Str1) в строке результата.
  • Если найдено совпадение, функции Delete и Insert удаляют соответствующую подстроку из строки результата и вставляют новую подстроку (Str2) на том же месте.
  • Цикл продолжается, пока не будут заменены все вхождения подстроки (Str1).
end;

Наконец, ключевое слово end обозначает конец тела функции.

В статье описана функция StrReplace на языке Delphi, которая позволяет заменить все вхождения одной подстроки в строке на другую.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Текст и Строки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-04 05:52:10/0.0056290626525879/0