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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : vilfred                              2:5020/400     01 Oct 2002  19:31:53
 To : Vilfred
 Subject : Re: вот более конкретно...
 -------------------------------------------------------------------------------- 
 
 
 Уже сам сделал, сорри за флуд...
 
 Дима
 
 vilfred пишет:
 
 > может кто такие фишки делал, мои лыжи походу уже
 > не едут...
 
 > первое поле собственный код, второе код
 > родителя(третье уровень
 > вложения верхний уровень 1, четвертое состояние 1
 > - узел, 0 - нет, и
 > дальше еще лдо черта полей с описаниями, для
 > структуры они не важны):
 
 > 1 1 1 1
 > 2 1 .....
 > 3 1 .....
 > 4 1 .....
 > 5 4 .....
 > 6 4 .....
 
 > и т.д.
 > нужно сделать так, чтобы выводилась структура
 > таблицы как в виндовсной
 > папке, как какой уровень вложения подпапки
 > кликнул, тот и открылся.
 
 > я по файлу(на самом деле не файл а массив,
 > полученный селектом из
 > таблицы, но это не важно, все равно все строки,
 > разделенные #,
 > находятся в массиве) бегу скриптом:
 
 > $url="lesenka.pl";
 
 > sub show_base{
 >  @row=@_; my @l=split /\|/ => $pr;
 >  #step1#
 >  @m = sort grep {!$_{$_}++} map
 > {/^.*?#.*?#(.*?)#/} @row;
 >   # выясняю уровень вложения, чтобы от него
 > строить верхний уровень
 >  #step2#
 >  foreach my $l(@row){
 > $l=~s!(\s)\1+|(\t)+|[\cM\cJ\n]!!g;
 >    my @tmp1= split /#/ => $l;
 >    do{print qq~<a
 > </a><br>\n~
 >  if $tmp1[3] == 1;
 >      print qq~$tmp1[7]~ if $tmp1[3] == 0;
 >      &view($tmp1[0], "НН") if $tmp1[3]
 > == 1 and $id_self
 > ne '';
 >    } if $tmp1[2]==$m[0]; # это условие значит,
 > что нужно первыми
 > выводить только верхние уровни
 >  }
 >  sub view{ my $self=$_[0]; $t=$_[1]; my @l=split
 > /\|/ => $pr;
 >    foreach my $k(@row){
 >      my @tmp = split /#/ => $k;
 >      do{print qq~$t<a
 > </a><br>\n~
 >   if $tmp[3] == 1;
 >   &view($l[$#l]) if $l[$#l] != $id_self;
 >   #print "<b>!$tmp[1] = $l[$#l]!</b>";
 >      } if $self eq $tmp[1] and $self eq $l[$#l];
 >    }
 >  }
 > }
 
 > вобщем такая вот задница... я уже честно гря
 > просто офигел это дело
 > делать...
 
 > thx!
 > href=$url?id_self=$tmp1[0]&path=\|$tmp1[0]>$tmp1[
 > 7]
 > href=$url?id_self=$tmp[0]&path=$pr|$tmp[0]>$tmp[7
 > ]
 
 -- 
 TEAM [Маньяки]
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.ru (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 подскажите рекурсивный алгоритм, запарился...   vilfred   30 Sep 2002 22:43:52 
 вот более конкретно...   vilfred   30 Sep 2002 23:27:21 
 Re: вот более конкретно...   vilfred   01 Oct 2002 19:31:53 
Архивное /ru.perl/648852aa3eee.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional