Показать сообщение отдельно
  #4  
Старый 10.11.2010, 19:33
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Основная ошибка ваша в том, что длину строки вы вычисляете сразу, а ведь в результате удаления символов длина тоже будет меняться.
Поэтому начинать надо не с 1 позиции, а с последней, тогда даже если мы удалим символ на следующий проход это влиять не будет.
Код:
 
 for i := Length(s) downto 1
 do if s[i] = ' ' then Delete(s, i, 1);
Как вариант можно формировать новую строку копируя символы из старой но без пробелов:
Код:
s1 := '';
for i := 1 to Length(s)
 do if s[i] <> ' ' then s1 := s1 + s[i];
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием