ua
Головна Про проект

Заміна подвійних пробілів одинарними в 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 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;