200X/00/07 ファイルをビシバシ書きかえる関数を覚えたモンd(^-^)ネ! unshift,(配列先頭にデータ追加) seek,(ファイルのポインタを好きな位置に移動) print,(これは書き出しじゃ。) truncate,(データの切り詰め) これで楽々とデータファイルをいじれるので、こないだまで悩んでいた、表示件数もこれで解決d(^-^)ネ! しかし??まだダサイなぁ(⌒^⌒)bうふっ ビシバシ書きかえる関数のログデータ追加記述部分 書きこみ表示のHTML件数制御部分 《これを表示させるとこんな感じ→ 「dbbbs5.html」》 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; read(STDIN, $naka, $ENV{"CONTENT_LENGTH"}); @nakami = split('&', $naka); foreach(@nakami) { ($hidari, $migi) = split("="); $migi =~ tr/+/ /; $migi =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $migi =~ s/<;/&lt;/g; $migi =~ s/>;/&gt;/g; 上2行は改行の制御部分ですが&が全角です。 $migi =~ s/\r?\n/<BR>/gi; $kaku{$hidari} = $migi; } $name = $kaku{'name'}; $memo = $kaku{'memo'}; $logfile = "../logfile.txt"; $dasufile = "../dbbbs2.html"; print <<MAMA; <META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://127.0.0.1/~****/****.html"> <BODY> ただ今書き込み中<p> MAMA open(LOGFILE, "+<$logfile"); @logs = <LOGFILE>; $ban = $logs[0] +1; $memo =~ s/\r?\n/<BR>/g; $logdata = $ban."<table><tr><td><b>$name</b></td></tr><td>$memo</td></tr></table><hr>"."\n"; unshift( @logs, $logdata ); seek( LOGFILE, 0, 0 ); print LOGFILE @logs; truncate( LOGFILE, tell( LOGFILE )); close( LOGFILE ); open(DASU, ">$dasufile"); select DASU; print <<MAMA; <HTML> <HEAD><TITLE>TESTBBS</TITLE></HEAD> <BODY LINK="#000000" VLINK="#000000"> <FORM METHOD="POST" ACTION="cgi-bin/****.cgi"> name<INPUT NAME="name"><P> message<TEXTAREA NAME="memo" ROWS="4" COLS="60"> </TEXTAREA><P> <INPUT TYPE="submit" VALUE="submit"> <INPUT TYPE="reset" VALUE="reset"> <HR> MAMA print $logs[0]; print $logs[1]; print $logs[2]; print "</form>"; print "</html>"; close(DASU); exit; プログラムは自分で書くのも楽しいものだ(*^^*ゞ |