人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで自作のCGIチャットを作り、チャットを利用してあるテーマへのアイディアを思いつくままに出してもらうのですが(対話ではなくただ各々が他人の出したアイディアを見ながら自分もアイディアを出す)、それぞれのコメントを母コメントとして、その発言後○秒〜○秒までに出された発言の数がA以上か未満かで母コメントを2つに切り分けしてA以上のものを再度画面に表示させたいのですが、2つに切り分けするところまでの方法を教えてください。細かいプログラムではなく大筋で結構です。ポイントはずみます。

●質問者: y0k0
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:CGI Perl アイディア コメント チャット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●20ポイント

http://www.rescue.ne.jp/cgi/trees/

CGI RESCUE チャレンジCGI - 電子掲示板 ツリーズ Trees

チャットよりもツリー形式の掲示板のほうがよろしいのではないでしょうか?

◎質問者からの返答

コメントありがとうございます。それぞれのコメントを勝手に母コメントとして切り分けていき、一つのコメントにレスをつけるという形式をとらないのでツリーでは。。あと手動で判別するというのも不可です。代替案でもいいので引き続きお願いします。方向性が見えないもので。。


2 ● upride
●100ポイント

http://google.co.jp/

Google

for ( 1 からすべてのコメントのカウント ) {

a = ある母コメント(ID)

b = a にぶら下がるコメントのリスト(配列)

for ( i = 1 から bの配列のカウント数 ) {

if ( bがaの発言時間より大きく、かつ bがaの発言時間+○秒より小さいなら ) {

発言グループとしてカウントアップ

else {

発言除外グループとしてカウントアップ

}

}

a の発言グループ ○個

a の発言除外グループ ×個

表示処理

}

コメントの階層構造がよくわからなかったので

母に対する子たちを判断し分別するイメージです。イメージちがいますかね

◎質問者からの返答

ありがとうございます!!

やらなければいけないことが見えてきました。イメージもあってます。丁寧に解説していただきありがとうございます。とりあえずプログラムを書いてみます。また教えて下さい。ほんとにありがとうございます!


3 ● aki73ix
●100ポイント

http://www.google.co.kr/

Google

発言をまず1つ単位でIDを持たせて管理します

パラメータとして、通常のチャットのような発言時間、発言者情報以外にも、チェーン情報を配列として持たせます

配列は、ループバッファ方式にしてタイムアウトしたものを削除し、開いてる場所に情報を書き込むようにします

母コメントに対してレスをつけた場合、チェーン情報として母コメントには最後にコメントされた発言のIDを、子コメントには母コメントのIDを記録し、これを一定時間ごとに、タイムアウトしたものは削除し、ソートして出力するようにしてはいかがでしょうか?

なお、発言時間を現在時刻と比較することによって、タイムアウトしたかどうかを確認する方法もありますし、タイムアウトの持ち時間を持たせておいて、リフレッシュごとに差分の時刻を引いてゆき発言があった場合は、持ち時間を初期化、なければ減らしてゆき0未満になったら削除グループに移動するという2つの方法が一般的だと思います

◎質問者からの返答

なるほど。タイムアウトですか。

思いつきませんでした。

ありがとうございます!大変参考になりました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ