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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 15:11   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Ускорение сравнения строк

Сравниваю строки в цикле:
Код:
If S[1] In ['A'..'Z'] Then
   Begin
    For Num := 0 To SLBook[Ord(S[1]) - Ord('A')].Count - 1 Do
     If S = SLBook[Ord(S[1]) - Ord('A')].Strings[Num] Then SLResult.Add(RS);
   End;
В стринГлистах находятся слова на определенные буквы. По сравнению с одним большим файлом ускорил процесс в 20 раз. Как ускориться еще?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.01.2011, 15:40   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

господи, ну зачем же писать то, что уже написано?
SLBook - типа TStringList ?
тогда отсортируйте его (.Sort + .Sorted := true) и используйте поиск по .Find

если же сортировать по какой-то причине нельзя,
тогда используйте метод .IndexOf()
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.01.2011, 15:45   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
и используйте поиск по .Find
Не покажете, как?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
tasm32 не выполняет событие после сравнения строк функцией апи DarkLogic Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 08.01.2011 20:45
Проблема сравнения строк securus Общие вопросы C/C++ 7 21.12.2010 03:12
ускорение виндовс voland123454321 Windows 22 04.09.2010 12:16
Ускорение д2010 Utkin Софт 2 29.03.2010 16:03
программа для сравнения строк ТМемо MixanMM Компоненты Delphi 2 02.07.2009 13:28