•  

ГлавнаяРабота с текстом и строками → Удаление ненужных подстрок из строки

Создано: 02.08.2010 18:30:09 · Исправлено: 02.08.2010 18:30:09 · Прочтений: 1832

procedure RemoveInvalid(what, where: string): string;
// what - удаляемая подстрока, where - обрабатываемая строка
var
  tstr: string;
begin
  tstr:=where;
  while pos(what, tstr)>0 do
    tstr:=copy(tstr,1,pos(what,tstr)-1) +
  copy(tstr,pos(what,tstr)+length(tstr),length(tstr));
  Result:=tstr;
end;

Применение:

NewStr:=RemoveInvalid('<брак>','Этот <брак> в моей строке, и я хочу
удалить из нее этот <брак>');

Другое решение:

Используйте стандартную функцию Pascal DELETE. Пользуясь тем же примером, вы можете сделать так

Target:='<брак>';
While POS(Target,string)>0 do
begin
  P := POS(Target,string);
  DELETE(string,P,Length(Target));
end;