2章6節 ファイルの書き込み 更新日付: [2002-05-17]
今回はファイルの書き込みを学びましょう。
ファイルを書き込みをするときには
1.読み出し用にファイルを開く(変数に連結する)
2.ファイルにprint文を使って書き込む
3.ファイルを閉じる
という手順で行います。
それではプログラムを見てみましょう。
今回はHTML部分とプログラム部分に別れているので注意しましょう。
-- HTML 始まり -- html261.htm
<html>
<head>
<title></title>
</head>
<body>
<form action="test261.cgi" method="POST">
<input type="text" name="senddata">
<input type="submit" value="送信">
</form>
</body>
</html>
-- HTML 終わり --
-- プログラム 始まり -- test261.cgi
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
require "cgi-lib"
input = CGI.new
FILENAME = "data261.log"
senddata = input["senddata"]
fh = open(FILENAME, "w")
fh.print senddata
fh.close
print "<html><body>wrote</body></html>"
-- プログラム 終わり --
ファイルをアップしパーミッションを変更してからhtml.261.htmを表示します。テキストボックスに「data」と入れて送信を押しましょう。今回のプログラムは表示は必ず「wrote」とでます。
もしプログラムはうまく動いたでしょうか?もしうまく動かなかったら先にdata261.logというファイルを作成して、パーミッションを664にしておいてください。これでうまくいくはずです。
しかし実は新しく「data261.log」というファイルが作成され、その中身が「data」となっているはずです。このファイルをダウンロードして確認してみましょう。テキストボックスに入れる文字を変えていろいろと試すと、保存されるファイルの中身が変わります。
まずtest241.cgiでは1行目、2行目は決り文句です。3,4行目はデコードです。6行目でファイル名を設定しています。7行目はフォームから受け取ったデータを変数senddataに入れいています。
9行目は書き込み用にファイルをオープンしています。"w"の部分がポイントです。10行目でsenddataをファイルに書きこみ。11行目でファイルを閉じています。12行目はファイルの書きこみが完了した事を表示しています。
今回はファイルの書きこみを説明しました。
今回始めて使った命令など
open文
|
|