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

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

{ **** UBPFD *********** by delphibase.endimus.com ****
>> удаление лишних пробелов в строке
удаляет из строки лишние пробелы без использования всяких указателей и т.д.
Зависимости: стандартные модули
Автор: Артем, <a href="mailto:boss1999@mail.ru">boss1999@mail.ru</a>, москва
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;
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
 ®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}

begin
 Repeat
  Result:=s;
  s:=StringReplace(Result,' ',' ',[rfReplaceAll]); //заменяем все двойные пробелы на одинарные
 Until Result=s; //повторяем до тех пор пока есть двойные пробелы
end;
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)

S:=Edit1.Text; for I:=1 to Length(S) do if S[I]=' ' then while S[I+1]=' ' do Delete(S,I,1); if S[1]=' ' then Delete(S,1,1); if S[Length(S)]=' ' then Delete(S,Length(S),1); Edit2.Text:=S;

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...