Yo tengo esto:
Código Delphi
[-]function BorrarMultiEspacios(valor: string): string;
begin
repeat
valor := StringReplace(valor,' ',' ',[rfReplaceAll]);
until
pos(' ',valor) = 0 ;
Result := valor;
end;
Ni idea de si es lo más optimo. De hecho ni recuerdo si es mio o lo copié de algún lado.
Otra opción en:
http://texthandler.com/?module=remov..._spaces_delphi
Aunque no creo que sea mucho mas eficiente.
O adaptar este código de c#, bastante similar al mío:
Código:
while (text.IndexOf(" ") != -1)
{
text = text.Replace(" ", " ");
}
return text;
Aunque hace básicamente lo mismo y no creo que sea mucho más eficiente que el primero.