![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли как-то оптимизировать работу со StringList? [D6, WinXP]
Aleksandr © (2002-09-27 16:20:00)У меня из большого файла грузится экземляр TStringList (примено 80000 строк).
Далее из этого списка удаляются ненужные строки:
while i<Ls.Count do begin
StepIt(LS.Count);
s:=Ls.Strings[i];
if System.Copy(s,1,length(IP))<>IP then
Ls.Delete(i)
else
inc(i)
end;
Занимает этот код безумное время, и, что самое интересное, чем ближе он к концу, тем быстрее он двигается. Как можно оптимизировать этот процесс?
Aleksandr (2002-09-27 16:32:00) [21]2 Song:
IndexOf не пройдет, потому что помимо искомого критерия (IP) в каждой строке истчо туева хуча неизвестной информации.
Song (2002-09-27 16:25:00) [22]IndexOf() вместо If
>>...и, что самое интересное, чем ближе он к концу
Это понятно, чем ближе к концу, тем меньше итемов остаётся.
Anatoly Podgoretsky (2002-09-27 16:24:00) [23]Ну для начала добавить памяти, поставить P IV 4.7 ггц
потом стоит заняться алгоритмом