トップページphp
1001コメント413KB

【 スクリプト改造工房 PART 5 】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/08/01 18:19ID:???

#================================
# スレッドの説明
#================================

「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。

質問するときは以下の点に注意して書いて下さい

(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い

※答えてくれないからといって逆ギレする厨はお断り

#================================
# 過去のスレッド
#================================

【PART1】行方不明
【PART2】http://pc.2ch.net/test/read.cgi/perl/986986227/
【PART3】http://pc.2ch.net/php/kako/988/988808396.html (HTML化済み)
0562nobodyさん03/01/07 17:12ID:???
>>561
どういったものを希望しているのかわからんが…。
名前ごとの発言回数を記録したいならこれでいけると思う。
sub rank($) {
    my($name) = @_;
    my $found = 0;
    my @log;

    open RNK, "+<", $rankfile or error("Can't open file:$rankfile");
    eval "flock RNK, 2;";
    while (<RNK>) {
        chomp;
        my($log_name, $log_count) = split /\t/;
        if ($name eq $log_name) {
            push @log, join("\t", $name, ++$log_count) . "\n";
            $found = 1;
        } else {
            push @log, join("\t", $log_name, $log_count) . "\n";
        }
    }
    if (!$found) {
        push @log, join("\t", $name, 1) . "\n";
    }
    truncate RNK, 0;
    seek RNK, 0, 0;
    print RNK @log;
    close RNK;
}
0563nobodyさん03/01/07 17:13ID:???
(続き)
sub viewrank {
    open RNK, "<", $rankfile or error("Can't open file:$rankfile");
    eval "flock RNK, 1;";
    my @rank = <RNK>;
    close RNK;
    # by perlメモ
    @rank = map {$_->[0]}
           sort {$b->[2] <=> $a->[2]}
               map {[$_, split /\t/]} @rank;

    hphead();
    print qq[<h1>発言ランキング</h1>\n].
          qq[<table border="1">\n].
          qq[<tr><td>名前</td><td>発言回数</td></tr>\n];
    foreach (@rank) {
        chomp;
        my($name, $count) = split /\t/;
        print qq[<tr><td>$name</td><td>$count</td></tr>\n];
    }
    print qq [</table>\n];
    hpfoot();
}
■ このスレッドは過去ログ倉庫に格納されています