![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TStringList и sorted... [D7]
istok2 © (2009-02-10 18:25:00)вопрос по TStringList :
LoadFromFile занимает значительное время при предустановленном sorted = true, что и понятно.
но - если файл уже отсортирован заранее, можно как-то сделать загрузку быстрее? а то кажется что там лишние действия в таком случае происходят (сортирует то что уже отсортировано)..
istok2 (2009-02-11 13:04:00) [1]да вот, этим и занялся параллельно. всё получилось как надо..
спасибо.
Сергей М. (2009-02-11 13:00:00) [2]
> то что я хотел услышать
Типа бальзам на истерзанный мозг ?)
Мог бы и сам догадаться, достаточно было проследить по исходникам что происходит при вызове метода Sort
istok2 (2009-02-11 12:57:00) [3]
> Естественно.
> Но к собственно к загрузке это не имеет ни малейшего отношения
> - при этом сортируются уже загруженные данные.
я с этим и не спорю
> "Допил" не составляет труда сделать самостоятельно - метод
> CustomSort, к счастью, виртуальный, остается объявить своего
> наследника стринглиста и перекрыть этот метод, реализовав
> в нем нужное тебе поведение в такой ситуации.
вот, то что я хотел услышать. спасибо)
Сергей М. (2009-02-11 12:48:00) [4]
> стоит выставить его потом в True - и они будут сортироваться
> то же долгое время.
Естественно.
Но к собственно к загрузке это не имеет ни малейшего отношения - при этом сортируются ужезагруженные данные.
> или допилы tstringlist чтоб учитывать такой случай
"Допил" не составляет труда сделать самостоятельно - метод CustomSort, к счастью, виртуальный, остается объявить своего наследника стринглиста и перекрыть этот метод, реализовав в нем нужное тебе поведение в такой ситуации.
istok2 (2009-02-11 12:43:00) [5]
> p.s. реализация загрузки как догадываюсь там тоже не фунт
> изюму, с таким пониманием, а свежеизобретенный велосипед.
>
LoadFromFile - а есть что-то что не будет вызывать сортировку при sorted=true ?
istok2 (2009-02-11 12:41:00) [6]
> Если св-во Sorted = False, то сортированность загружаемых
> данных никак не влияет на скорость загрузки.
Ессно, но стоит выставить его потом в True - и они будут сортироваться то же долгое время.
> выключаешь там и тогда когда она не нужна, и включаешь перед
> тем как понадобится или сразу после того как она станет
> не "не нужной" и мешающей каким то действиям (например загрузке
> данных).
проблема в том что без разницы когда я ее включу - алгоритм всё равно съест приличное время на сортировку.
сортировка в виде sorted := true после loadfromfile ест то же время, что и
с sorted = true перед loadfromfile.
я говорю о том, что моя задача является частным случаем, когда массив данных УЖЕ отсортирован ДО загрузки в TStringList и это дает теоретическую возможность избежать повторной сортировки.
или такой возможности никак нет даже теоретически?
может есть классы какие-то другие, или допилы tstringlist чтоб учитывать такой случай....
Anatoly Podgoretsky (2009-02-11 09:07:00) [7]> istok2 (11.02.2009 2:10:05) [5]
А если нет?
Сергей М. (2009-02-11 08:13:00) [8]
> грузит долго, если данные в файле изначально отсортированы
Если св-во Sorted = False, то сортированность загружаемых данных никак не влияет на скорость загрузки.
sniknik (2009-02-11 08:09:00) [9]> я понимаю как это работает
ой сомневаюсь я что то сильно очень...
>> Так отключи же предустановку - и всех делов)
> так мне нужна работа именно с отсортированным TStringList
так включи сортировку - и всех делов.
не?, не доходит еще? до и так понимающего как это работает...
выключаешь там и тогда когда она не нужна, и включаешь перед тем как понадобится или сразу после того как она станет не "не нужной" и мешающей каким то действиям (например загрузке данных).
p.s. реализация загрузки как догадываюсь там тоже не фунт изюму, с таким пониманием, а свежеизобретенный велосипед.
istok2 (2009-02-11 02:10:00) [10]
> Чего еще надо-то ?
грузит долго, если данные в файле изначально отсортированы, то по идее можно ж как-то сделать чтоб они грузились быстрее - не?
> Прочитай справку по свойству Sorted. Может что-то поймёшь!
> ?
я понимаю как это работает, меня не устраивает скорость загрузки файла и я ожидаю что есть какие-то методы ее ускорения будь то этот класс или сторонний.
Германн (2009-02-11 00:56:00) [11]
> tok2 (10.02.09 22:12) [2]
>
>
> > Так отключи же предустановку - и всех делов)
>
>
> так мне нужна работа именно с отсортированным TStringList
>
Прочитай справку по свойству Sorted. Может что-то поймёшь!?
Сергей М. (2009-02-10 22:19:00) [12]
> так мне нужна работа именно с отсортированным TStringList
Так он у тебя и будет отсортирован сразу после загрузки ужеотсортированных данных !
Чего еще надо-то ?
istok2 (2009-02-10 22:12:00) [13]
> Так отключи же предустановку - и всех делов)
так мне нужна работа именно с отсортированным TStringList
Сергей М. (2009-02-10 19:03:00) [14]
> при предустановленном sorted = true
Так отключи же предустановку - и всех делов)