Удаление лишних пробелов в строке

Материал из DRKB

Удаление лишних пробелов в строке[править | править код]

{ **** UBPFD *********** by delphibase.endimus.com ****
>> удаление лишних пробелов в строке

удаляет из строки лишние пробелы без использования всяких указателей и т.д.

Зависимости: стандартные модули
Автор:       Артем, boss1999@mail.ru, москва
Copyright:   собственное описание (Артем)
Дата:        24 сентября 2003 г.
***************************************************** }

{ процедура удаления лишних пробелов в строке }
function SpacesCompress(AStr: string): string;
var
  c, i: integer;
  s: string;
begin
  c := 0;
  Result := '';

  for i := 1 to Length(AStr) do
  begin
    s := Copy(AStr, i, 1);
    if (s = ' ') and (c >= 1) then
    begin
      c := c + 1;
    end
    else if (s = ' ') and (c = 0) then
    begin
      c := c + 1;
      Result := Result + s;
    end
    else if (s <> ' ') then
    begin
      c := 0;
      Result := Result + s;
    end;
  end;
end;


Source: http://delphibase.endimus.com
ID: 00905



function DeleteDoubleSpaces(s: string): string;
begin
  repeat
    Result := s;
    s := StringReplace(Result, '  ', ' ', [rfReplaceAll]); // заменяем все двойные пробелы на одинарные
  until Result = s; // повторяем до тех пор пока есть двойные пробелы 
end;


Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
ID: 00906