第10回 ことおぼえ レポート課題 氏名 鈴木智也 学籍番号 c110129 語学クラス 英語6 コース 地域共創 1、pstoreを使ったCGIの使い方について CGIが動くようにするため、rubycgiの下にpstoreのディレクトリをつくることに する。 pstoreは外部の書き込み専用とすることができる。 pstoreをつくるため、public_htmlをktermで起動させる。 rubycgiを開き、そのディレクトリ内にpstoreをmkdirで作成する。 そこで、自由に書くためのpstoreを作ることにする。 なお、CGIスクリプトは値を引渡し処理を行うまでしか、その数値は反映されな いから、使い勝手があまり良くないと感じる。 そこでファイルに内容を取りこんだ、変数をそのままのかたちでファイルに保存 できるのが、pstoreである。 !/usr/koeki/bin/rubyはhtml文書で書いたディレクトリをRubyで取りこむ require "pstore" cgi = CGI.new(html4) db =PStore.new("./pstore/sales.db") db=PStore.transaction do requireはプログラムで外部と連絡をする際に用いる記述方法である。 dbはファイルにアクセスするためのpstore変数とした。PStore.newは変数をhash値として取り出すため使った。 ("./pstore/sales.db")はsales.dbファイルを作り、それにアクセスするためdb というpstore変数を置くことにした。 PStore.transaction doはデータファイルと出力した値のやりとりをする。 ただしファイルは PStore.transaction doの中でだけ使用することができる。 この下の3行は決まったかたちとして扱う。 db.transaction do if db == nil db[t] = Hash.new if db ==nilのところは、データベース内にpstore変数のdbが存在しないのであ れば、hash値を空っぽにしてからつくるという作業にするということ行う。 db[t] = station db[t] = cgi["sales"] end 今回作成したsales.rbは変数dbをkeyとよばれるsalesに対応するかたちでdbの [t]に代入される。 最後にデータベースへの値の書き込みは最後のendを使うことで、入力が終わっ たら、その時点でtransaction処理が終了することを表している。 2、プログラム課題 A-1、リンク先 http://roy/~c110129/advertise2/rubycgi/r2_cgi_best.html 広告ページhttp://roy.e.koeki-u.ac.jp/~c110129/advertise2/ A-2 CGIの題材と目的 洋服の試着がどのようにプログラムではおこなわれているかと、実際の公益的 な視点から、shopの店員になったつもりで製作しようと考えた。 A-3 プログラム本体 #!/usr/koeki/bin/ruby require'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") name1 =cgi["name"] size =cgi["size"] iro =cgi["color"] print("\n") number = 0 open("number.txt","r")do |read| while data = read.gets if /(\d+)/ =~ data number = $1.to_i end end end print("
\n") printf("◯◯さんにはぴったりだったでしょうか
とっても小さいね、めだってるわ!
\n") print("\n") elsif size == "M" print("
良くお似合いですね,素敵だと思いますよ!!
\n") elsif size == "L" print("少し大きいかんじですね,もう少し小さいほうがいいと思いますよ!
\n") else size =="XL" print("凄く大きいですね!!,もう少し小さいのを持ってきますか?
\n") end print("誠にありがとうございました