Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

Сравнение имен файлов как в Explorer - чтобы 1 шел перед 100    Найти похожие ветки 

 
GrayFace ©   (2007-01-30 18:52) [0]

Хочу сделать обработчик OnDataFind в Shell"овском ListView с помощью бинарного поиска. Соответственно, нужно уметь сравнивать строки на больше-меньше.
Нашел сравнение двух PIDL"ов, но IShellFolder.ParseDisplayName возвращает PIDL только для существующих файлов.
Вы знаете, как это можно сделать?

P.S. Видимо, придется создать StringList, упорядочить его и искать через него. А потом еще искать наиболее подходящую строку среди удволетворяющих условию поиска.


 
clickmaker ©   (2007-01-31 18:03) [1]


> сравнение двух PIDL"ов, но IShellFolder.ParseDisplayName
> возвращает PIDL только для существующих файлов

а где связь между пидлами и именами 1 и 100?


 
tesseract ©   (2007-01-31 21:39) [2]

> StringList,


THashedStringList гораздо более производителен. Использование  FindFirst ещё прибавит производительности.


 
GrayFace ©   (2007-02-01 13:26) [3]

На счте FindFirstFile уже думал, но толку с этого не будет - потом все-равно его искать среди соих объектов-файлов. А THashedStringList - хороший совет, вероятно его буду использовать.

clickmaker ©   (31.01.07 18:03) [1]
а где связь между пидлами и именами 1 и 100?

Я хотел сравнивать имя файла с частью имени файла. Для PIDL-ов сравнение есть, соответственно два имени существующих файлов можно сравнить.


 
MBo ©   (2007-02-01 14:11) [4]

http://rsdn.ru/Forum/Message.aspx?mid=210313#210313


 
GrayFace ©   (2007-02-01 16:38) [5]

Прикинув, решил что и без THashedStringList скорость будет отличная.

MBo ©   (01.02.07 14:11) [4]
http://rsdn.ru/Forum/Message.aspx?mid=210313#210313

Интересно. Еще чуть-чуть и у Slicer"а был бы правильный алгоритм.


 
MBo ©   (2007-02-01 16:56) [6]

Я как-то видел ссылки на сишные реализации, но сейчас не нашел.


 
GrayFace ©   (2007-02-02 12:19) [7]

Спасибо, не надо. Я уже сделел через StringList.



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1180984871
Ш-К
2007-06-04 23:21
2007.07.08
Где взять файл курсора?


2-1181313162
Infinityx93
2007-06-08 18:32
2007.07.08
проверить на интежер


15-1181050079
Zagaevskiy
2007-06-05 17:27
2007.07.08
Как подсчитать сумму 1+1/1!+1/2!+1/3!+...


3-1176204004
allucard
2007-04-10 15:20
2007.07.08
Как хранить компоненты в БД?


15-1181230858
oldman
2007-06-07 19:40
2007.07.08
Кого достал какой модератор данного сайта? Предложение по примире