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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 22:03   #1
Dima DDM
Форумчанин
 
Аватар для Dima DDM
 
Регистрация: 09.11.2010
Сообщений: 134
Вопрос Подсчет кол-ва слов

Я Сделал процедуру подсчета кол-ва слов.Для того чтобы слова в тексте считались нормально я поставил ее на таймер в 100 мс ,но проблема в том что эта процедура тормозит весь текст.
Подскажите как ее оптимизировать
Код:
procedure WordCount;
const
  //Разделители слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13,
  '\','|','/'];
//   '(' ,  ')'  , '[' ,  ']' , '{',  '}'
  var
  S : String;
  i, Pos1, Len,ii : Integer;
begin
for ii:=0 to Form1.PageControl1.ActivePage.ControlCount-1 do
    if Form1.PageControl1.ActivePage.Controls[ii] is TRichEdit then begin

  FOrm1.falseEdit.Clear;
//  S := Memo1.Text;
S:=TRichEdit(Form1.PageControl1.ActivePage.Controls[ii]).Text;
  Len := Length(S);
  Pos1 := 0;
  Cnt := 0;
  for i := 1 to Len do begin
    //Пропускаем разделители.
    if S[i] in D then Continue;
    //Отслеживаем начало слова.
    if (i = 1) or (S[i - 1] in D) then Pos1 := i;
    //Отслеживаем конец слова.
    if (i = Len) or (S[i + 1] in D) then begin
      //Подсчитываем слово.
      Inc(Cnt);
      //Добавляем слово в Мемо2.
  FOrm1. FalseEdit.Lines.Add( Copy(S, Pos1, i - Pos1 + 1) );
  end;
end;
 end;
http://ddmsite.ucoz.ru Мой сайт.
Бесплатный Блокировщик рекламы
http://download.adguard.ru/d/1656/adguardInstaller.exe
Dima DDM вне форума Ответить с цитированием
Старый 25.12.2011, 22:20   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я считаю что такие вещи надо ограничивать в проходе, например активной строкой.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет кол-во файлов в папке epickgod Помощь студентам 5 17.10.2011 17:26
Произвольная вставка строк и подсчет кол-ва Ppaa Microsoft Office Excel 11 07.10.2011 09:28
Подсчет кол-ва строк в excel Доктор Microsoft Office Excel 6 11.12.2010 13:46
Подсчет кол-ва значений в строке new_user БД в Delphi 1 03.06.2009 09:18
Работа с базой Акцесс, подсчет кол-ва 4321 БД в Delphi 6 12.11.2007 15:19