2.6. ファイルの書き込み


今回はファイルの書き込みを学びましょう。

ファイルを書き込みをするときには
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行目はファイルの書きこみが完了した事を表示しています。

ファイルの書きこみを説明しました。



今回始めて使った命令など

| | メニュー戻る | |

LinkExchange Japan
LinkExchange Japan Member