WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:COMCHAT(KENT-WEB)にROM人数表示

0:[投稿] 植田 [2002/08/28 03:13 ][環境:WIN+IE UNIX系+Perl]

現行版のCOMCHAT(KENT-WEB)にROM人数表示を表示させたいのですが、よろしくお願いします。

過去ログにも良く似たものがあったのですが、少しルーチンが変わっているようで移植できませんでした。

表示としては、

ROM(人数)参加者(1):masaru◆

のようにROMの参加者人数のみを表示したいのです。

参加者ルーチンは以下の通りです。
#--------------#
#  在室者処理  #
#--------------#
sub member {
    open(IN,"$memfile") || &error("Open Error : $memfile");
    @data = <IN>;
    close(IN);

    $member="";
    @new=();
    $flag=0;
    $flag2=0;
    foreach (@data) {
        ($time2,$name2,$host2) = split(/<>/);
        # 60秒以上発言のない者は削除
        if ($times-60 > $time2) { next; }
        elsif ($host2 eq "$host") {
            # 退室者は削除
            if ($_[0] eq 'bye') { next; }

            # ホスト名が同一であれば時間と名前を更新
            $_ = "$times<>$in{'name'}<>$host<>\n";
            $name2 = $in{'name'};
            $flag=1;
        }
        # 更新用配列 @new に追加
        if ($name2 ne "$host2") {
            push(@new,$_);

            # 参加者表示用文字列を作成
            if (!$flag2) { $member .= "$name2◇"; $flag2=1; }
            else { $member .= "$name2◆"; $flag2=0; }
        }
    }
    # 新規参加者を追加
    if (!$flag && !$bye) {
        if ($in{'name'} ne "$host") {
            push(@new,"$times<>$in{'name'}<>$host<>\n");
            if (!$flag2) { $member .= "$in{'name'}◇"; }
            else { $member .= "$in{'name'}◆"; }
        }
    }
    # 参加者数を認識
    $num = @new;

    # ファイル更新
    if ($mode || $in{'retime'}) {
        open(OUT,">$memfile") || &error("Write Error : $memfile");
        eval "flock(OUT,2);";
        truncate(OUT,0);
        seek(OUT,0,0);
        print OUT @new;
        close(OUT);
    }
}


1:[回答] andi [2002/08/28 13:53 ]

@data(全参加者数)から$num(参加者数)を引けば良いのでは。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World