ru
Главная О проекте

Замена двойных пробелов одинарными в Delphi

Если у вас возникла необходимость удалить двойные пробелы или заменить двойные пробелы одинарными используя Delphi, то можно воспользоваться следующей функцией:

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

Функция StringReplace заменяет первое или все вхождения подстроки OldPattern в SourceString строкой NewPattern в соответствии с настройками Flags. В качестве результата функции возвращается измененная строка.

    Переменная Flags может содержать ни одного, одно или оба из этих значений:
  • rfReplaceAll : заменяет все вхождения
  • rfIgnoreCase : игнорирует регистр при поиске

Эти значения задаются в квадратных скобках.

Пример замены двойных пробелов одинарными в Delphi:

uses SysUtils;

var
   before, after : string;
begin
   before:='Текст  в котором  удаляются двойные  пробелы с помощью Delphi';
   after := StringReplace(before, '  ', ' ', [rfReplaceAll]);
   ShowMessage(before);
   //Выведет: Текст  в котором  удаляются двойные  пробелы с помощью Delphi
   ShowMessage(after);
   //выведет: Текст в котором удаляются двойные пробелы с помощью Delphi
end; end;

Для удаления повторяющихся пробелов в Delphi вы можете использовать следующую функцию:

function DelDoubleSpaces(OldText:String):string;
var i:integer;
     s:string;
begin
  if length(OldText)>0 then
    s:=OldText[1]
  else
    s:='';
  for i:=1 to length(OldText) do
  begin
    if OldText[i]=' ' then
    begin
      if not (OldText[i-1]=' ') then
        s:=s+' ';
    end
    else
    begin
      s:=s+OldText[i];
    end;
  end;
  DelDoubleSpaces:=s;
end;