| |
|
|||||||
|---|---|---|---|---|---|---|---|---|
Быстрый поиск строк в списке. Модуль FastList. |
||||||||
В данном обзоре будет рассмотрен созданный мною модуль FastList. В нем содержатся классы для быстрого поиска строк в списке (TStrings). Идея такова, что при поиске не перебирается каждая строка. Здесь строится дерево из списка слов, а далее по этому дереву происходит поиск. Для списка, состоящего из 100 строк (по 8 случайных символов), поиск последней строки с помощью FastList оказался 80 раз быстрее, чем обычный перебор, организованный в TStringList. А если у нас не 100 строк, а, скажем, 100 000. Тогда данный модуль просто незаменим. Теперь рассмотрим использование модуля. Его достаточно добавить в проект и подключить к нужному модулю. Так как он написан в Delphi, то он легко может быть использован и C++Builder. Итак, подключили модуль. uses FastList; Теперь у нас в распоряжении класс TFastList. Рассмотрим наиболее важные члены класса:
Чтобы использовать поиск строк в списке, создаем экземпляр объекта TFastList. Заносим любым способом слова в свойство Strings и вызываем метод Compile. Теперь мы можем смело искать строку в списке, вызвав метод IndexOf и передав в него искомую строку. Рассмотрим пример: procedure TForm1.Button1Click(Sender: TObject);
var
fl: TFastList;
begin
fl := TFastList.Create;
fl.Strings.LoadFromFile('Words.txt');
fl.Compile;
Caption := IntToStr(fl.IndexOf(Edit1.Text));
fl.Free;
end;
У кого фантазия получше, тот найдет более интересное применение данному компоненту. Да самое главное, скачать модуль вы можете здесь: fastlist.zip (2 Кб) или в разделе Компоненты.
|
| © Зинкевич
Виктор, 2005 г. |