Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Так отключи же предустановку - и всех делов)


Наверх

Титульная страница Поиск, карта сайта Написать письмо