Показать сообщение отдельно
  #4  
Старый 21.12.2008, 13:19
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

вообще-то мы ничего не удаляем.
выводить ответы как раз так и надо. а переменной str присвоено значение? и еще: если текст в несколько строчек, то в набор del надо добавить символы #13 и #10. а если текст лежит в memo, то код будет как этот
Код:
var c,l, i, j, k : integer;
const del: set of char = [',', '.', '<', '>', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '=', '`', '~', '/', '?', '''', '"', ':', ';', '\', '|', '№', '[', ']', '{', '}']; // разнообразные символы-разделители
...
begin
  i:=0; // пробелы
  j:=0; // слова
  k:=0; // длина слова
  for l:= 0 to Memo1.Lines.Count-1 do // обрабатываем построчно
  for c:=1 to length(Memo1.Lines.Strings[l]) do // считаем в l-той строке
  begin
    if (Memo1.Lines.Strings[l][c] in del)then // если символ - разделитель
      if k>0 then // если перед символом было слово
        begin
          inc(j); // добавляем слово
          k:=0; // и обнуляем счетчик его длины
        end
      else
    else // если другой символ
      begin
        if (Memo1.Lines.Strings[l][c]=' ')then // если пробел
        begin
          if k>0 then // если перед пробелом было слово
            inc(j); // добавляем слово
          inc(i); // добавляем пробел
          k:=0; // обнуляем счетчик длины слова
        end
        else // если обычная буква
        inc(k); // увеличиваем счетчик длины слова
      end;
  end;
Edit1.text:=inttostr(i);
Edit2.text:=inttostr(j);
end;
код работает. проверено.
еще можно проверять принадлежность символа не к разделителю, а к обычной букве.
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием