メモ書きプログラム-ソース


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#!/usr/local/bin/perl
###################################################
#memo.cgi  メモ書きプログラム
#                   2001.09.10  MARCO
#              edit 2002.05.09  MARCO
#
#  パーミッション
#              memo.cgi(755)
#              $file(666)
###################################################
require 'jcode.pl';
############ 設定項目 ##############
#メモファイル名(パーミッションを666で設定)
$file='memo.txt';
#戻るページ
$return_page='../../cgitop.html';
#ページタイトル
$page_title='メモ帳';
#背景GIF
$bg_gif='kumo.gif';
#ページ背景色
$page_bgcolor='#ffffff';
#タイトル文字色
$title_color='#003366';
#ページ文字色
$page_txtcolor='#664400';
#テーブル背景色
$tbl_bgcolor1='#aaffbb';
$tbl_bgcolor2='#eeeeee';
#削除キー
$del_key='123';
######################################
#日付と時間を取得
($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime();
#日付時刻のフォーマットを整える
$mon++;
$year += 1900;
$DATE = "$year年$mon月$mday日 $hour時$min分";

#HTML作成
print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=x-sjis\">\n";
print "<TITLE>$page_title</TITLE>\n";
print "</HEAD>\n<BODY bgcolor=$page_bgcolor text=$page_txtcolor background=$bg_gif>\n";
print "<a href=$return_page>戻る</a>\n";
print "<center><font size=5 color=$title_color><b>$page_title</b></font></center>\n";
#入力フォームの表示
print "<FORM ACTION=memo.cgi METHOD=POST>\n";
print "<CENTER><TABLE width=80% bgcolor=$tbl_bgcolor1>\n";
print "<TR><TD>入力画面</TD></TR>\n";
print "<TR><TD>名   前</TD><TD><input type=text name=FLD01 size=20></TD></TR>\n";
print "<TR><TD>タイトル</TD><TD><input type=text name=FLD02 size=50></TD></TR>\n";
print "<TR><TD>コメント</TD><TD><textarea name=FLD03 rows=5 cols=70></textarea></TD></TR>\n";
print "<TR><TD>区    分</TD><TD><input type=radio name=STATUS value=INS checked>追加\n";
print "<input type=radio name=STATUS value=DEL>削除\n";
print "(キー<input type=text name=DELKEY size=4>)</TD></TR>\n";
print "<TR><TD>削除対象№</TD><TD><input type=text name=LINNO size=4></TD></TR>";
print "<TR><TD><input type=submit value=\"登録\"><input type=reset value=\"取消\">\n";
print "</TD></TR></TABLE></CENTER></FORM>\n";

#入力データを獲得
use CGI;
$form=CGI->new();
$idt1=$form->param("FLD01");
$idt2=$form->param("FLD02");
$idt3=$form->param("FLD03");
$sts=$form->param("STATUS");
$lno=$form->param("LINNO");
$dky=$form->param("DELKEY");

#入力チェック
if(($sts eq 'INS' && $idt1 ne '') || ($sts eq 'DEL' && $dky eq $del_key)){
 #一旦全データを読み込む
 open(NOTE,"$file");
 $no=0;
 while(<NOTE>){
  @DT{$no}=$_;
  $no++;
 }
 close(NOTE);

 open(NOTE,">$file");
 if($sts eq 'INS'){
  input_data();
 }
 $no=0;
 while($DT{$no}){
  #追加の処理
  if($sts eq 'INS'){
   print NOTE $DT{$no}
  }
  #削除の処理
  if($sts eq 'DEL'){
   if($lno != $no+1){
    print NOTE $DT{$no}
   }
  }
  $no++;
 }
}
close(NOTE);

sub input_data{
 &jcode'convert(*idt1,"sjis");
 &jcode'convert(*idt2,"sjis");
 &jcode'convert(*idt3,"sjis");
 print NOTE "$DATE\t";
 print NOTE "$idt1\t";
 print NOTE "$idt2\t";
 #改行文字の置き換え
 $idt3=~s/\r\n/<br>/ig;
 print NOTE "$idt3\n";
}

#ファイルを読み込んで出力
open(NOTE,"<$file");
@DATA=<NOTE>;
close(NOTE);
$no=1;
print "<CENTER><TABLE border=1 bgcolor=$tbl_bgcolor1 width=80%>\n";
foreach(@DATA){
 ($DATE,$dt1,$dt2,$dt3)=split(/\t/,$_);
 print "<TR><TD>\n";
 print "<font size=1>No.[$no]</font>\n";
 print "<font size=3 color=$title_color><b>$dt2</b></font>\n";
 print "<TABLE border=0 bgcolor=$tbl_bgcolor2>\n";
 print "<TR>";
 print "<TD>"; print $dt3; print "</TD></TR></TABLE>\n";
 print "<font size=2>$DATE</font> From <b>$dt1さん</b></TD></TR>\n";
 $no++;
}
print "</TABLE></CENTER>\n";
print "</BODY>\n</HTML>\n";