Консультация № 38076
21.03.2006, 08:29
0.00 руб.
0 5 5
Здраствуйте!!!
Помню видел здесь процедурку которая в строке ищет другую строку и заменяет её на третью!Подскажите плиз!

Обсуждение

Неизвестный
21.03.2006, 08:43
общий
это ответ
Здравствуйте, chikanok!
Если ты о замене подстроки то вот

Приложение:
function ReplaceSub(str, sub1, sub2: string): string;var aPos: Integer; rslt: string;begin aPos := Pos(sub1, str); rslt := ‘‘; while (aPos <> 0) do begin rslt := rslt + Copy(str, 1, aPos - 1) + sub2; Delete(str, 1, aPos + Length(sub1) - 1); aPos := Pos(sub1, str); end; Result := rslt + str;end;
Неизвестный
21.03.2006, 09:30
общий
это ответ
Здравствуйте, chikanok!
Если интересуют стандартные из Delphi:
<b>AnsiReplaceSrt</b> - с учётом регистра
<b>AnsiReplaceText</b> - без учёта регистра
Модуль <b>StrUtils</b>
Неизвестный
21.03.2006, 10:40
общий
это ответ
Здравствуйте, chikanok!
Функция в приложении. Комментарии к переменным:
str - исходная строка
str1 - подстрока, подлежащая замене
str2 - заменяющая строка

Приложение:
function StrReplace(const Str, Str1, Str2: string): string;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;
давно
Мастер-Эксперт
425
4118
21.03.2006, 12:52
общий
это ответ
Здравствуйте, chikanok!
В модуле StrUtils есть такая функция:
function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
Она Вам безусловно поможет.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
21.03.2006, 15:02
общий
это ответ
Здравствуйте, chikanok!
Такая функция называется StringReplace.

type TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);

function StringReplace (const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

где

S - строка в которой искать,

OldPattern - строка которую искать и менять

NewPattern - строка на которую менять

Flags - как выполнить замену: rfReplaceAll - заменить все вхождения подстроки, rfIgnoreCase - заменить только первое вхождение.
Форма ответа