Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Pascal] Замучился. Может у кого есть готовое решение? 20.08.01 17:57
Автор: DamNet <Denis Amelin> Статус: Elderman
|
|
Прохождение всех подкаталогов, заданного каталога. Дайте хотябы алгоритм!!! А то я ужо мягко говоря затрахался.
|
 |
[Pascal] Замучился. Может у кого есть готовое решение? 23.08.01 13:36
Автор: Chingachguk Статус: Незарегистрированный пользователь
|
> Прохождение всех подкаталогов, заданного каталога. Дайте > хотябы алгоритм!!! А то я ужо мягко говоря затрахался.
Могу выслать свой исходник для DOS(Pascal 7.0) (вставки на asm) - там с интерфейсом хождение по текущему диску с заходом в подкаталоги - или просто поиск файлов в подкаталогах на чистом asm.
Не требует больших буферов. НЕ рекурсивна.
Писать: vzubko@chat.ru
|
 |  |
[Pascal] Будь любезен... 23.08.01 14:41
Автор: DamNet <Denis Amelin> Статус: Elderman
|
|
|
 |
[Pascal] Замучился. Может у кого есть готовое решение? 21.08.01 03:47
Автор: Бяша <Biasha> Статус: Member
|
> Прохождение всех подкаталогов, заданного каталога. Дайте > хотябы алгоритм!!! А то я ужо мягко говоря затрахался.
1. Поиск в глубину: берёшь каталог, в цикле для каждого его подкаталога (если таких нет, то что-то делаешь) вызываешь эту же процедуру.
2. Поиск в ширину (это когда нужно всех одновременно получить, или просто памяти дофига): берёшь каталог, динамически создаёшь массив с именами его подкаталогов, после этого в цикле создаёшь такой же массив, для каждой записи в массивах, полученных на прошлом шагу.
|
 |  |
[Pascal] Замучился. Может у кого есть готовое решение? 21.08.01 11:05
Автор: cyril_ Статус: Незарегистрированный пользователь
|
// Выдрал кусок из проги под win32 console
// Можешь доработать под себя, в принципе работает
// сканирует только один логический диск
// недостаток, так как проверки на количество вызовов, то стек может
// переполнится
// Думаю алгоритм обхода должен быть понятен
Const
FileMask = '*';
procedure RecurseSearch(Location : string);
var
F : TSearchRec;
begin
if FindFirst(Location+FileMask, faAnyFile, F) <> 0 then exit;
repeat
if (F.Name = '.') OR (F.Name = '..') then continue;
if (FileGetAttr(Location+F.Name) AND faDirectory) > 0 then RecurseSearch(Location+F.Name+'\')
else
if (UpperCase(F.Name) = UpperCase('file.txt')) then
Добавим куда-либо путь(Location+F.Name) к найденному файлу
until FindNext(F) <> 0;
FindClose(F);
end;
|
|
|