|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/648852aa3eee.html, оценка из 5, голосов 10
|