Показать сообщение отдельно
  #1  
Старый 02.06.2012, 20:37
serbius serbius вне форума
Прохожий
 
Регистрация: 23.05.2012
Сообщения: 20
Репутация: 10
Радость Обработка текста больших объемов

Здравствуйте.
Есть текст, предположим, 50000 тыс слов. Его надо обработать: разбить на слова (по пробелам), создать массив, который бы не содержал дубликатов слов и второй массив, считающий кол-во повторений того или иного слова, который бы был связан по ключу с первым.

Так вот, задача вроде бы реализована, но, поскольку поиск слов в TStringList реализован через indexOf, то поиск может быть очень медленным, порой до нескольких минут.

Вопрос: как можно оптимизировать поиск, возможно, еще что-то?

Дополнение №1:
Могу выложить исходик, если будет надо.

Дополнение №2:
В инете откопал такой вот пример, может, действительно, быстрее будет проверять: вставилась ли строка?

Код:
var Strlist: TStringList;
begin
  Strlist := TStringList.Create;
  Strlist.Duplicates := dupError;
  Strlist.Add('aa'); {добавляем первую строку}
  try
    Strlist.Add('aa'); {добавляем дубликат}
    ShowMessage('Ok');
  except
    on EStringListError do ShowMessage('Duplicate');
  end;
end; 

Спасибо!
Ответить с цитированием