
21.12.2008, 13:19
|
 |
Активный
|
|
Регистрация: 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;
код работает. проверено.
еще можно проверять принадлежность символа не к разделителю, а к обычной букве.
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
|