|
|
|||||||
---|---|---|---|---|---|---|---|---|
Быстрый поиск строк в списке. Модуль 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 г. |