Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2013, 20:59   #1
student_iz_permi
Новичок
Джуниор
 
Регистрация: 26.06.2013
Сообщений: 2
Восклицание как правильно считать слова в тексте

Ребята, кто может пояснить почему именно(то что в комменты взял) так подсчет слов в тексте ведется и для чего это сделано?? если убрать ту часть которая в коментах, я заметил что подсчет неправильный..

Код:
if ((str = 32) or (str = 13) or (str = 10)) (*then
   if ((oldstr<>32) and (oldstr<>13) and (oldstr<>10))*) then word1:= word1 + 1;
было бы лучше, если прям на примере показать. например вот слово от него идет пробел, соответственно конец слова, увеличиваем счетчик. А вот если например, после слова идет пробел конец строки и новая строка. что тогда? . я не понимаю.
переменная Str текущее значение символа
oldstr предыдущее значение.

Последний раз редактировалось Stilet; 26.06.2013 в 21:05.
student_iz_permi вне форума Ответить с цитированием
Старый 26.06.2013, 21:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему именно(то что в комменты взял) так подсчет слов
Я тебя разочарую - это неверный алгоритм подсчета ))
Фраза, в котором слова разделяются несколькими пробелами или даже пунктуацией без пробелов тут подсчитана будет неверно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.06.2013, 22:34   #3
student_iz_permi
Новичок
Джуниор
 
Регистрация: 26.06.2013
Сообщений: 2
По умолчанию

Вы мне поясните пожалуйста, желательно на примере!
if ((str = 32) or (str = 13) or (str = 10)) then
if ((oldstr<>32) and (oldstr<>13) and (oldstr<>10)) then word1:= word1 + 1;
а что тут тогда нужно учесть??

почем в условие смотрят на предыдущее значение символа проверяемого??

в каких ситуациях то, что было изначально в коментах. понадобится??

Последний раз редактировалось Stilet; 27.06.2013 в 07:43.
student_iz_permi вне форума Ответить с цитированием
Старый 26.06.2013, 23:23   #4
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

имхо как то так, не идеально конечно... если считать что 2 символа из алфавита это уже слово, то...

Код:
Function WordCount(Text: String): Integer;
const Alphabet: Set of Char = ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я'];
Var Count, i, Index: Integer;
begin
Index:= 0; Count:= 0;
for i:= 1 to Length(Text) do
  begin
  if (Text[i] in Alphabet)
  then inc(Index)
  else if Index>1 then
    begin
    inc(Count);
    Index:= 0;
    end;
  end;
Result:= Count+1;
end;
NewLamer&Programer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто знает как записать цикл который будет находить в тексте(в любом)слова juliaaaa Помощь студентам 0 27.05.2011 00:48
string + ifstream (как правильно считать?) Macmeprag Общие вопросы C/C++ 2 18.05.2011 21:01
Memo. как правильно считать мне данные NativeLand Общие вопросы Delphi 6 15.05.2011 00:46
Как правильно считать сторку из поля edit? reynevan Win Api 7 16.07.2010 02:21
Как считать определенное количество букв из слова Poltev86 Общие вопросы Delphi 2 22.05.2010 17:47