Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007
{ **** UBPFD *********** by delphibase.endimus.com ****
>> удаление лишних пробелов в строке
 
удаляет из строки лишние пробелы без использования всяких указателей и т.д.
 
Зависимости: стандартные модули
Автор:       Артем, boss1999@mail.ru, москва
Copyright:   собственное описание (Артем)
Дата:        24 сентября 2003 г.
***************************************************** }
 
{процедура удаления лишних пробелов в строке (см. function Sha_SpaceCompress)}
var
  c, i: integer;
  stt, st, st1: string;
begin
  c := 0;
  st := edit1.Text;
 
  for i := 1 to Length(st) do
  begin
 
    stt := copy(st, i, 1);
    if (stt = ' ') and (c >= 1) then
    begin
      st1 := st1;
      c := c + 1;
    end
    else if (stt = ' ') and (c = 0) then
    begin
      c := c + 1;
      st1 := st1 + stt;
    end
    else if (stt <> ' ') then
    begin
      c := 0;
      st1 := st1 + stt;
    end
  end;
 
  edit2.text := st1;
end;

Function DeleteUselessSpaces(s:String):string;

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

Автор: Vit