| あけびさんのcyclamenでは、sortcache.cgiとtree.cgiでツリー構造を記憶させているようですが、
一段階の返信のみの掲示板の場合、ひとつのファイルで済むのではと考えています。
6を削除する場合、以下のような感じなと思っているのですが、どうも格好がよくないんです。
$tree_data ="11:12:15\t7:12:14:\t8:13:\t5:\t4:6:9:10:\t3:\t1:2:\t";
$input = 6;
@TREES = split(/\t/,$tree_data);
$flag = 0;
foreach $line (@TREES) {
if ($line =~ /^$input\:/) { $line2 = $line; $flag = 2; last; }
elsif ($line =~ /\:$input\:/) { $line2 = $line; $flag = 1; last; }
}
if (!$flag) { die 'No Data'; }
@TREES2 = split(/\:/,$line2);
if ($flag == 2) {
$new_list = (); $pare_data = $input;
} else {
@TREES3 = grep (!/^$input$/,@TREES2);
$new_list = join(':',@TREES3);
$pare_data = shift @TREES3;
}
$new_value = '';
foreach $line (@TREES) {
if ($line =~ /^$pare_data\:/) {
$new_value .= $new_list . "\t"; next;
} else { $new_value .= $line ."\t"; }
}
|
|