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

ничего сложного в этом нет. если считать словами любые символы, не считая пробелов, то задача решается итерационным использованием функции Pos, пока она не станет равной -1. если слова могут разделяться некоторыми символами, то лучше анализировать текст посимвольно, используя 3 счетчика-для количества слов, для пробелов и для длины слова, обнуляющийся при достижении символа-разделителя. например
Код:
var c, i, j, k : integer;
str:string;
const del: set of char = [',', '.']; // символы-разделители
...
begin
  i:=0; // пробелы
  j:=0; // слова
  k:=0; // длина слова
  for c:=1 to length(str)do // в str лежит нужный текст
  begin
    if (str[c] in del)then // если символ - разделитель
      if k>0 then // если перед символом было слово
        begin
          inc(j); // добавляем слово
          k:=0; // и обнуляем счетчик его длины
        end
      else
    else // если другой символ
      begin
        if (str[c]=' ')then // если пробел
        begin
          if k>0 then // если перед пробелом было слово
            inc(j); // добавляем слово
          inc(i); // добавляем пробел
          k:=0; // обнуляем счетчик длины слова
        end
        else // если обычная буква
        inc(k); // увеличиваем счетчик длины слова
      end;
  end;
// дальше надо просто вывести содержимое i и j
end;
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием