| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Папки... |
| Автор: z-END 13.1.2005, 17:01 |
| Пришла весна и лыжи встали Вот: имеется список папок и имеется адрес еще одной папки, нужно определить является или он вложенной в данный список (или папка из списка является вложеной для нее, или просто они одинаковы) или нет. (проще говоря изнать пересекаются они или нет) Напрмер: [список] 1:C:\folder\Sub 2:C:\folder\Sub\xSub ... Надо получть: папка: C:\folder (родительская папка для Список[1]) - True папка: C:\folder\Sub\xSub\New (подпапка для Список[2])- True папка: C:\folder\Sub (идентичны)- True папка: C:\folder\New (папки не пересекаются - зер гуд)- False ЗЫ надеюсь понятно объяснил... подругому даж незнаю как это объяснить |
| Автор: _hunter 13.1.2005, 17:32 |
| а в чем проблема? сравниваеш SubString второй папки с первой ( на длину родительской ) длина родительской получается проходом справа до первого "\" если равны -- отлично ( они как минимум пересекаются ) проверяеш следующий символ второй папки. если это "\" -- отлично -- имеем подпапку ну и если SubString не равен -- совсем хорошо -- пересечений -- нет как смог -- объяснил |
| Автор: z-END 13.1.2005, 17:45 |
| Снега на улице нет, вот почему лыжи не едут! я опять непонял |
| Автор: _hunter 13.1.2005, 18:14 |
| тут есть проблема ( точнее вопрос ): папки имеют такую структуру, как ты привел ( т.е. xSub -- подпапка Sub ) или может быть несколько родительских папок? |
| Автор: z-END 13.1.2005, 18:23 |
| _hunter это я пример привел насаом деле список может составлять до тысячи папок, и вложенность у них может быть такой какую юзверь решить сделать |
| Автор: _hunter 13.1.2005, 18:36 |
| тогда делай так: folder -- проверяемая папка folder[i] -- папка из списка первая ходка: проверяеш ( для всех папок из списка ) folder[i].Pos(folder) <> 0 если не равно 0 -- folder -- родительская папка для folder[i] и выход вторая ходка: проверяеш ( для всех папок из списка ) folder.Pos(folder[i]) <> 0 если не равно 0 -- folder[i] -- родительская папка для folder и выход кажись все |
| Автор: z-END 13.1.2005, 18:43 |
| точняк.. пасибо! |
| Автор: _hunter 13.1.2005, 18:51 |
| пожалуйста обращайтесь еще. |