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

「メモ書きプログラム-ソース」の編集履歴(バックアップ)一覧はこちら

メモ書きプログラム-ソース」(2008/07/15 (火) 17:51:21) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p>#!/usr/local/bin/perl<br /> ###################################################<br /> #memo.cgi  メモ書きプログラム<br /> #                   2001.09.10  MARCO<br /> #              edit 2002.05.09  MARCO<br /> #<br /> #  パーミッション<br /> #              memo.cgi(755)<br /> #              $file(666)<br /> ###################################################<br /> require 'jcode.pl';<br /> ############ 設定項目 ##############<br /> #メモファイル名(パーミッションを666で設定)<br /> $file='memo.txt';<br /> #戻るページ<br /> $return_page='../../cgitop.html';<br /> #ページタイトル<br /> $page_title='メモ帳';<br /> #背景GIF<br /> $bg_gif='kumo.gif';<br /> #ページ背景色<br /> $page_bgcolor='#ffffff';<br /> #タイトル文字色<br /> $title_color='#003366';<br /> #ページ文字色<br /> $page_txtcolor='#664400';<br /> #テーブル背景色<br /> $tbl_bgcolor1='#aaffbb';<br /> $tbl_bgcolor2='#eeeeee';<br /> #削除キー<br /> $del_key='123';<br /> ######################################<br /> #日付と時間を取得<br /> ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime();<br /> #日付時刻のフォーマットを整える<br /> $mon++;<br /> $year += 1900;<br /> $DATE = &quot;$year年$mon月$mday日 $hour時$min分&quot;;</p> <p>#HTML作成<br /> print &quot;Content-type: text/html\n\n&quot;;<br /> print &quot;&lt;HTML&gt;\n&lt;HEAD&gt;\n&quot;;<br /> print &quot;&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html;charset=x-sjis\&quot;&gt;\n&quot;;<br /> print &quot;&lt;TITLE&gt;$page_title&lt;/TITLE&gt;\n&quot;;<br /> print &quot;&lt;/HEAD&gt;\n&lt;BODY bgcolor=$page_bgcolor text=$page_txtcolor background=$bg_gif&gt;\n&quot;;<br /> print &quot;&lt;a href=$return_page&gt;戻る&lt;/a&gt;\n&quot;;<br /> print &quot;&lt;center&gt;&lt;font size=5 color=$title_color&gt;&lt;b&gt;$page_title&lt;/b&gt;&lt;/font&gt;&lt;/center&gt;\n&quot;;<br /> #入力フォームの表示<br /> print &quot;&lt;FORM ACTION=memo.cgi METHOD=POST&gt;\n&quot;;<br /> print &quot;&lt;CENTER&gt;&lt;TABLE width=80% bgcolor=$tbl_bgcolor1&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;入力画面&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;名   前&lt;/TD&gt;&lt;TD&gt;&lt;input type=text name=FLD01 size=20&gt;&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;タイトル&lt;/TD&gt;&lt;TD&gt;&lt;input type=text name=FLD02 size=50&gt;&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;コメント&lt;/TD&gt;&lt;TD&gt;&lt;textarea name=FLD03 rows=5 cols=70&gt;&lt;/textarea&gt;&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;区    分&lt;/TD&gt;&lt;TD&gt;&lt;input type=radio name=STATUS value=INS checked&gt;追加\n&quot;;<br /> print &quot;&lt;input type=radio name=STATUS value=DEL&gt;削除\n&quot;;<br /> print &quot;(キー&lt;input type=text name=DELKEY size=4&gt;)&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;削除対象№&lt;/TD&gt;&lt;TD&gt;&lt;input type=text name=LINNO size=4&gt;&lt;/TD&gt;&lt;/TR&gt;&quot;;<br /> print &quot;&lt;TR&gt;&lt;TD&gt;&lt;input type=submit value=\&quot;登録\&quot;&gt;&lt;input type=reset value=\&quot;取消\&quot;&gt;\n&quot;;<br /> print &quot;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/FORM&gt;\n&quot;;</p> <p>#入力データを獲得<br /> use CGI;<br /> $form=CGI-&gt;new();<br /> $idt1=$form-&gt;param(&quot;FLD01&quot;);<br /> $idt2=$form-&gt;param(&quot;FLD02&quot;);<br /> $idt3=$form-&gt;param(&quot;FLD03&quot;);<br /> $sts=$form-&gt;param(&quot;STATUS&quot;);<br /> $lno=$form-&gt;param(&quot;LINNO&quot;);<br /> $dky=$form-&gt;param(&quot;DELKEY&quot;);</p> <p>#入力チェック<br /> if(($sts eq 'INS' &amp;&amp; $idt1 ne '') || ($sts eq 'DEL' &amp;&amp; $dky eq $del_key)){<br />  #一旦全データを読み込む<br />  open(NOTE,&quot;$file&quot;);<br />  $no=0;<br />  while(&lt;NOTE&gt;){<br />   @DT{$no}=$_;<br />   $no++;<br />  }<br />  close(NOTE);</p> <p> open(NOTE,&quot;&gt;$file&quot;);<br />  if($sts eq 'INS'){<br />   input_data();<br />  }<br />  $no=0;<br />  while($DT{$no}){<br />   #追加の処理<br />   if($sts eq 'INS'){<br />    print NOTE $DT{$no}<br />   }<br />   #削除の処理<br />   if($sts eq 'DEL'){<br />    if($lno != $no+1){<br />     print NOTE $DT{$no}<br />    }<br />   }<br />   $no++;<br />  }<br /> }<br /> close(NOTE);</p> <p>sub input_data{<br />  &amp;jcode'convert(*idt1,&quot;sjis&quot;);<br />  &amp;jcode'convert(*idt2,&quot;sjis&quot;);<br />  &amp;jcode'convert(*idt3,&quot;sjis&quot;);<br />  print NOTE &quot;$DATE\t&quot;;<br />  print NOTE &quot;$idt1\t&quot;;<br />  print NOTE &quot;$idt2\t&quot;;<br />  #改行文字の置き換え<br />  $idt3=~s/\r\n/&lt;br&gt;/ig;<br />  print NOTE &quot;$idt3\n&quot;;<br /> }</p> <p>#ファイルを読み込んで出力<br /> open(NOTE,&quot;&lt;$file&quot;);<br /> @DATA=&lt;NOTE&gt;;<br /> close(NOTE);<br /> $no=1;<br /> print &quot;&lt;CENTER&gt;&lt;TABLE border=1 bgcolor=$tbl_bgcolor1 width=80%&gt;\n&quot;;<br /> foreach(@DATA){<br />  ($DATE,$dt1,$dt2,$dt3)=split(/\t/,$_);<br />  print &quot;&lt;TR&gt;&lt;TD&gt;\n&quot;;<br />  print &quot;&lt;font size=1&gt;No.[$no]&lt;/font&gt;\n&quot;;<br />  print &quot;&lt;font size=3 color=$title_color&gt;&lt;b&gt;$dt2&lt;/b&gt;&lt;/font&gt;\n&quot;;<br />  print &quot;&lt;TABLE border=0 bgcolor=$tbl_bgcolor2&gt;\n&quot;;<br />  print &quot;&lt;TR&gt;&quot;;<br />  print &quot;&lt;TD&gt;&quot;; print $dt3; print &quot;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;\n&quot;;<br />  print &quot;&lt;font size=2&gt;$DATE&lt;/font&gt; From &lt;b&gt;$dt1さん&lt;/b&gt;&lt;/TD&gt;&lt;/TR&gt;\n&quot;;<br />  $no++;<br /> }<br /> print &quot;&lt;/TABLE&gt;&lt;/CENTER&gt;\n&quot;;<br /> print &quot;&lt;/BODY&gt;\n&lt;/HTML&gt;\n&quot;;</p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: