プログラム質問箱への投稿
記事番号00730へのフォローを投稿します。
お名前(ペンネイムで結構ですが必要です)
(
ブラウザに個人情報を覚えさせない)
電子メイルアドレス(必要です)
題名(必要です)
Home Page がある方はリンク希望先の URL を記載して下さい
会議室に載せたい内容を以下へお書き下さい (
HTMLを解釈せずにそのまま表示)
8月1日に、cgiさんは書きました。 >こんにちわ。自作のBBSを作成してます。そこで、投稿された記事にカウントをつけたいのですがどのようにすればいいでしょうか?プログラムは下記のように組んでいます。 >print OUT したときにカウントを表示させたいのでよろしくお願いします。 >#!C:/Perl/bin/perl > >$|-1; >require 'jcode.pl'; >require 'cgi-lib.pl'; >&ReadParse; > >#もしメッセージがあれば >if ($in{'name'} && $in{'mes'} && $in{'url'} && $in{'tenki'}) > { > $name = $in{'name'}; > $mes = $in{'mes'}; > $url = $in{'url'}; > $tenki = $in{'tenki'}; > > #メッセージの漢字コード変換 > &jcode'convert(*name,"sjis"); > &jcode'convert(*mes,"sjis"); > &jcode'convert(*tenki,"sjis"); > > #日付取得 > ($min,$hou,$day,$mon,$yea) = (localtime(time))[1..5]; > $mon++; > $yea += 1900; > $date = sprintf("%4d/%.2d/%.2d %.2d:%.2d",$yea,$mon,$day,$hou,$min); > > #メッセージ整形 > $mes =~ s/\n/<BR>\n/g; > $name = "<FONT COLOR=#CD5C5C>$name</FONT>\n"; > $url = "$url\n"; > $date = "$date\n"; > $tenki = "$tenki\n"; > $mes = "<FONT COLOR=#CD5C5C>$mes</FONT>\n"; > > #記録ファイル読み込み > open (IN,"X.dat"); > @lines = <IN>; > close IN; > > #新規メッセージ記録 > open (OUT,">mad.dat"); > print OUT "<TABLE BGCOLOR=#FFFFFF WIDTH=600><TR class=s2 ALIGN=LEFT><TH>\n"; > print OUT "■\n"; > if ($in{'url'} eq "") { > print OUT "$in{'name'}\n"; > } elsif ($in{'url'} =~ /^http:/) { > print OUT "<A HREF=\"$in{'url'}\">$in{'name'}</A>\n"; > } else { > print OUT "<A HREF=\"mailto:$in{'url'}\">$in{'name'}</A>\n"; > } > print OUT "$date\n"; > print OUT "$in{'tenki'}\n"; > print OUT "</TH></TR><TR><TD>\n"; > print OUT "$mes\n"; > print OUT "<FONT COLOR=#555555>\n"; > print OUT "</FONT>\n"; > print OUT "</TD></TR></TABLE>\n"; > #過去のデータを文頭から一行づつ順次再記録(ループ) > foreach (@lines) > { > #もしその行が「<HR>」なら > if ($_ eq "<TABLE BGCOLOR=#FFFFFF WIDTH=600><TR class=s2 ALIGN=LEFT><TH>\n") > {#登場回数インクリメント > $number++; > } > #登場回数が2以下なら > if ($number <= 2) > {#その行を記録 > print OUT $_; > } #19をこえる場合は > else > {#ループを抜ける > last; > } > } > close OUT; > } >#記録ファイル読み込み >@lines = (); >open (IN,"X.dat"); >@lines = <IN>; >close IN;
ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 2 December 1999