|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
08.10.2007, 09:49 | #1 |
Пользователь
Регистрация: 12.07.2007
Сообщений: 60
|
Имена каталогов и подкаталогов
Подскажите. Выбираю каталог с помощь ShellComboBox1. Мне нужно найти по порядку имена всех подкаталогов причем и подкаталогов в подкаталогах, т.е. любой глубины. Спасибо.
|
08.10.2007, 10:00 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Рекурсивный поиск. в Delphi World порой
I'm learning to live...
|
08.10.2007, 13:27 | #3 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
вот кусок функции такого поиска, все лишнее я повыкидывал (она у меня только файлы искала), но не проверял, по идее должна работать
параметры: path - путь со слешем ext - '*.*' (поиск любых файлов) aListBox - листбокс в к-рый записывать, можешь заменить на что-то другое Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
08.10.2007, 21:22 | #4 |
Пользователь
Регистрация: 12.07.2007
Сообщений: 60
|
Вобщем так, мне нужно чтобы все найденные имена подкаталогов в выбранном каталоге выводились к примеру в листбокс. Недаходит до меня. Напишите пример плиз.
Последний раз редактировалось Xandr; 08.10.2007 в 21:51. |
09.10.2007, 13:33 | #5 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
допустим у тебя есть путь к директории, неважно откуда ты его получил (тебе нужно получить из ShellComboBox1), простеший пример ExtractFilePath(Application.ExeName ), эта функция вернет путь к директории программы, дальше нужен параметр Ext, пишем '*.*' (так и пишем все пять символов), далее нужен листбокс, допустим он имеет имя ListBox1. Получаем такой вызов процедуры: FindIt(ExtractFilePath(Application. ExeName),'*.*',ListBox1); После ее выполнения, в листбоксе будет список всех найденных директорий, включая вложенные. прим. Описание процедуры должно быть выше места где ее вызываешь.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
09.10.2007, 13:43 | #6 | |
Пользователь
Регистрация: 12.07.2007
Сообщений: 60
|
Спасибо за полное объяснение.
Цитата:
Еще раз спасибо. |
|
09.10.2007, 15:05 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Вот более продвинутая версия этой процедуры, пока проверял немного усовершенствовал, можно добавить дополнительный параметр - spaces, с ним в листбоксе можно будет визуально увидеть степень вложенности.
Параметр level вручную указывать не нужно. Код:
FindIt(ExtractFilePath(Application. ExeName),'*.*', ListBox1); FindIt(ExtractFilePath(Application. ExeName),'*.*', ListBox1,true);
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
09.10.2007, 16:21 | #8 |
Пользователь
Регистрация: 12.07.2007
Сообщений: 60
|
mutabor, что то она не так работает, я выбираю например папку D:\Picture, а в листбокс заполняется и D:\, а надо только Picture
|
09.10.2007, 19:27 | #9 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Путь надо передавать со слешем на конце
'D:\Picture\' тогда найдет все вложенные в Picture папки, но не саму Picture. Picture (а также все что есть на диске) найдет если передать 'D:\' Только что проверил, все нормально работает. p.s. добавь в самое начало процедуры после первого begin эту проверку Код:
ListBox1.Clear;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 09.10.2007 в 19:52. |
09.10.2007, 21:00 | #10 |
Пользователь
Регистрация: 12.07.2007
Сообщений: 60
|
Спасибо огромное, очень помог.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите как сделать отображение каталогов??? | SANTA_KLAUD | Общие вопросы Delphi | 6 | 30.04.2008 23:47 |
список каталогов | VVVadim | Общие вопросы Delphi | 11 | 03.04.2008 13:00 |
Дерево каталогов в табличной форме | Македонский | Общие вопросы Delphi | 11 | 30.08.2007 16:47 |
Вывод подкаталогов! | werser | Помощь студентам | 1 | 18.06.2007 20:23 |
древо каталогов | Dunpeal | Компоненты Delphi | 6 | 21.11.2006 06:22 |