Цикл с предусловием: убрать лишние пробелы

strib0g

Доброго дня всем. Задали написать программу, которая убирает лишние пробелы (то есть 2 пробела рядом, пробел перед запятой, в начале строки и т.д.). Я её написал, вот текст программы:
var
v,s:string; i:integer;
begin
  s:=Edit1.Text;
  v:='';
  for i:=1 to length(s)-1 do
     begin
     if (i=1) and not (i=' ') then v:=v+s[i];
     if (s[i]=' ') and not (s[i+1]=' ') and not (i=1) then v:=v+s[i];
     if (s[i]=' ') and not (s[i+1]=',') and not (i=1) then v:=v+s[i];
     end;
  if not (s[length(s)]=' ') then v:=v+s[length(s)];
  Edit2.Text:=v;
end;
После этого препод сказала изменить эту программу так, чтобы не было Edit2, то есть отредактированный текст отображался там же, куда его ввели, в Edit1. И сказала использовать для этого цикл while и оператор pos. Подскажите пожалуйста, как это можно сделать, мы только начинаем изучать и я с этим циклом ни разу не работал. Заранее спасибо)
1 ответ

strib0g

var
s:string; i:integer;
begin
  s:=Edit1.Text;
  while pos('  ',s)>0 do 
   Delete(s,pos('  ',s),1);
  Edit1.Text:=s;
end;