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

Вниз

Нужен алгоритм.   Найти похожие ветки 

 
cinol   (2006-06-06 06:43) [0]

Здравствуйте.
Нужно создать дерево папок (как в проводнике) произвольной "вложенности", относительно заданной.
Вот чет не могу сообразить как это сделать.


 
PZ   (2006-06-06 07:11) [1]

ShellTreeView


 
cinol   (2006-06-06 07:33) [2]

To PZ
Дело в том что это не в проге будет использоваться, это на пхп будет карта сайта.
Поэтому я прошу алгоритм.Готовые компоненты мне не подойдут.


 
cinol   (2006-06-06 07:35) [3]

из того что нашел в сети мне ничто не нравится.


 
Loginov Dmitry ©   (2006-06-06 08:56) [4]

Рекурсия?


 
cinol   (2006-06-06 09:52) [5]


> Рекурсия?

не знаю, что это такое?
з.ы. я новичек.


 
Loginov Dmitry ©   (2006-06-06 10:33) [6]

Это когда функция сама себя вызывает неопределенное число раз.


 
cinol   (2006-06-06 10:59) [7]


> Это когда функция сама себя вызывает неопределенное число
> раз.

Да наверно. Как это делается? Можно простенький пример?


 
Loginov Dmitry ©   (2006-06-06 11:19) [8]

Крайне полезный пример рекурсии :)

function A(I: Integer): Integer;
begin
 Inc(I);
 Result := I;
 if I > 100 then
   Exit
 else
   Result := A(I);
end;


 
cinol   (2006-06-07 07:51) [9]

function readdir($dir)//считывает все файлы в папке в массив $files
///////////////////////////////////////////////////////////////////////////////////////////////
function isdir($files)
foreach ($files as $value)    //$files массив возвращенный функ. readdir
          {if(is_dir($value))   //если папка
          {readdir($value);   //считаем файлы в ней
           isdir($value);}      //<-это и есть рекурсия?
           }

в таком случае дерево папок получается не правильное.
если в директории не одна папка.
находит первую папку, в ней то-же первую, в ней ...и т.д.
второй, третьеи и др. папок нет.

Не хватает фантазии, как сделать правильно?,Есть какие нибудь мысли?


 
MBo ©   (2006-06-07 08:43) [10]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19


 
Zeqfreed ©   (2006-06-07 09:07) [11]

Алгоритм, собственно, такой: функция на входе получает имя директории, получает список файлов и папок в ней и вызывает саму себя для всех каталогов кроме «.» (текущий каталог) и «..» (каталог уровнем выше). Таким образом рекурсивно она обойдет все подкаталоги указанной директории.


 
cinol   (2006-06-07 09:31) [12]


> http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19


Спасибо, вечером попробую переписать на пхп.


> обойдет все подкаталоги указанной директории.

а если в подкаталогах есть еще подкаталоги? Глубина вложенности не определена.


 
Zeqfreed ©   (2006-06-07 09:36) [13]


> а если в подкаталогах есть еще подкаталоги? Глубина вложенности
> не определена.

И их тоже обойдет, и все-все-все обойдет.



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

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

Наверх




Память: 0.49 MB
Время: 0.046 c
3-1146224798
nv
2006-04-28 15:46
2006.06.25
OleContainer сохранение, открытие из/в TBlobField(ClientDataSet)


15-1148890565
Ega23
2006-05-29 12:16
2006.06.25
А что в IDE Delphi5 делает функция


15-1149052365
Ega23
2006-05-31 09:12
2006.06.25
С Днём рождения! 31 мая


2-1149773568
XTD
2006-06-08 17:32
2006.06.25
Как программно свернуть окно ?


2-1149674285
Fiallo4ka
2006-06-07 13:58
2006.06.25
глупый вопрос