Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Pashchenko                 2:5062/17.212  02 Feb 2004  10:57:46
 To : Artem Chuprina
 Subject : Совета прошу... Обход дерева каталогов
 -------------------------------------------------------------------------------- 
 
 
 Reply to letter <02 фев 04>, Artem Chuprina -> Alexander Pashchenko:
 
  AC>>> Hе вижу тут ни одной проблемы.  Рутинные задачи с шаблонными решениями.
  AP>> А где на эти шаблонные решения можно посмотреть?
  AP>> У меня такая же проблема, и я также пытаюсь её решать рекурсией. Пока не
  AP>> получается.
  AC> Ты "проблему"-то сформулируй.  Что такое "обход дерева каталогов", вне
  AC> контекста непонятно.
 
 А можно я опишу ТЗ?
 -------------------------------------------------------------------------------
 Hужно написать fido filelist builder. Hу ту программку, которая генерит
 файллисты для фреканья...
 1) Входные данные: корневой каталог файлбазы
 2) Выходные данные: файл содержащий список файлов хранящихся в подкаталогах с
 любой вложенностью, с указанием подкаталога из которого он взят.
 3) Задача: обойти дерево каталогов.
 4) Алгоритм решения:
      рекурсивный.
      Функция
        читает оглавление $ROOT_DIR #(каталога, с которого начинается поиск.   
 #Hапример: c:\fido\fechoes\).
        Ищет подкаталоги.
        Если хоть один найден,
            входит в него и
            вызывает себя снова
        Иначе
            выводит содержимое каталога
            выходит на один уровень каталога вверх
            и выходит на один уровень рекурсии вверх
 -------------------------------------------------------------------------------
 
 Пытался реализовать, но запутался в логике. Может быть сегодня ещё подумаю над
 этим алгоритмом...
 
 PS Алгоритм сейчас не полностью соответствует ТЗ.
 PPS Имхо у меня какие-то ошибки с областью видимости списков...
 
 [--Это начало flb.pl--]
 #c:\prog-mer\perl\bin\perl.exe
 $FILELIST_NAME='c:\\prog-mer\\perl\\filelist.txt';
 $FILE_DIR_ROOT=$CURRENT_DIR=$PREV_DIR='c:\\fido2\\fecho\\';
 $NO_DIRS=0;
 open($FILELIST,">$FILELIST_NAME");
 
 sub is_dirs{
   my($direc)=@_;
   my($f);
   foreach $f (glob($direc."\\*")){
     if(-d $f){
       return 1
     }
   }
   return 0;
 }
 
 sub print_dir_content{
   my($DIR)=@_;
   my(@FILES,@UNSORT);
   $NO_DIRS=1;
   @UNSORT=glob($DIR."*");
   @FILES=sort{ if(-d $a){return -1} } @UNSORT;
   foreach $f (@FILES){
     if(-d $f){
       print ">>>>$f\n";
 #      $PREV_DIR=$DIR;
 #      chdir($f);
       @FILES={};
       @UNSORT={};
       $NO_DIRS=0;
       print_dir_content($f);
     }else{
       print "-$f\n"
     }
   }
 #  if($NO_DIRS){
 #    chdir($PREV_DIR);
 #  }
 }
 #chdir($CURRENT_DIR);
 print_dir_content("$CURRENT_DIR\\pass\\");
 close($FILELIST);
 
 [--А это кончало flb.pl--]
 
 Буду благодарен, если поможешь мне разобраться с ошибками в этом алгоритме, или 
 набросать костяк другого.
 Имхо, основная проблема, невозможность отсортировать список файлов в списке,
 чтобы первыми шли каталоги. Я пытался это сделать (функция is_dirs) но не
 уверен, что правильно понял назначение функции sort.
 Если это сделать было бы наверное проще: сначала каталоги с подкаталогами, потом
 без, потом файлы...
 
 Счастливо _Artem_ !
 ... 1d 18h 35m 36s 466ms
 --- Phone(44373) Pager(005)3880173 E-mail(point212@mail.ru) ICQ(273570474)
  * Origin: Фидо создали гомосексуалисты, а разрушат пидарасы! : (2:5062/17.212)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Совета прошу... Обход дерева каталогов   Artem Chuprina   23 Jan 2004 16:02:20 
 Совета прошу... Обход дерева каталогов   Alexander Pashchenko   01 Feb 2004 22:31:56 
 Совета прошу... Обход дерева каталогов   Serge Chervjakov   02 Feb 2004 00:16:53 
 Совета прошу... Обход дерева каталогов   Ivan Frolkov   02 Feb 2004 00:57:49 
 Совета прошу... Обход дерева каталогов   Serge Chervjakov   02 Feb 2004 02:16:39 
 Совета прошу... Обход дерева каталогов   Ivan Frolkov   02 Feb 2004 02:31:18 
 Re: Совета прошу... Обход дерева каталогов   Orlovsky Alexander   02 Feb 2004 09:50:32 
 Re: Совета прошу... Обход дерева каталогов   Ivan Frolcov   02 Feb 2004 12:44:38 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 17:06:26 
 Re: Совета пpошy... Обход деpева каталогов   Ivan Frolcov   02 Feb 2004 18:29:27 
 Re: Совета пpошy... Обход деpева каталогов   Serge Chervjakov   02 Feb 2004 18:46:41 
 Re: Совета пpошy... Обход деpева каталогов   Artem Chuprina   02 Feb 2004 19:45:19 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 18:57:16 
 Re: Совета пpошy... Обход деpева каталогов   Ivan Frolcov   03 Feb 2004 02:15:08 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 18:48:09 
 Re: Совета пpошy... Обход деpева каталогов   Ivan Frolcov   02 Feb 2004 20:46:41 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 21:32:44 
 Совета пpошy... Обход деpева каталогов   Alexander Kostiuchenko   03 Feb 2004 00:30:05 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   03 Feb 2004 15:21:08 
 Re: Совета пpошy... Обход деpева каталогов   Artem Chuprina   03 Feb 2004 17:59:41 
 Re: Совета пpошy... Обход деpева каталогов   Ivan Frolcov   03 Feb 2004 02:13:07 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   03 Feb 2004 15:27:49 
 Re: Совета пpошy... Обход деpева каталогов   Artem Chuprina   03 Feb 2004 18:02:22 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   03 Feb 2004 19:42:44 
 Совета пpошy... Обход деpева каталогов   Alexander Kostiuchenko   04 Feb 2004 01:51:59 
 Re: Совета пpошy... Обход деpева каталогов   Artem Chuprina   03 Feb 2004 17:58:01 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 17:02:53 
 Re: Совета прошу... Обход дерева каталогов   Artem Chuprina   02 Feb 2004 04:28:55 
 Совета прошу... Обход дерева каталогов   Alexander Pashchenko   02 Feb 2004 10:57:46 
 Re: Совета пpошy... Обход деpева каталогов   Sergey Bychkov   02 Feb 2004 17:10:44 
 Совета пpошy... Обход деpева каталогов   Alexander Pashchenko   02 Feb 2004 21:02:52 
 Re: Совета прошу... Обход дерева каталогов   Artem Chuprina   02 Feb 2004 04:29:57 
 Совета прошу... Обход дерева каталогов   Alexander Pashchenko   02 Feb 2004 14:53:36 
 Re: Совета прошу... Обход дерева каталогов   Artem Chuprina   02 Feb 2004 18:58:07 
 Совета прошу... Обход дерева каталогов   Alexander Pashchenko   02 Feb 2004 23:04:42 
Архивное /ru.perl/3892401df7e6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional