Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
15-1148914084
lobach
2006-05-29 18:48
2006.06.25
Папка windows


6-1140175143
Jolik
2006-02-17 14:19
2006.06.25
Проблема с бродкаст пакетами...


2-1149349597
Lammmerrr
2006-06-03 19:46
2006.06.25
Передача параметров форме


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


15-1149185752
Grozz
2006-06-01 22:15
2006.06.25
задачка про SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский