dポイントプレゼントキャンペーン実施中!

どなたかご教授下さい。
外部ファイルへ任意の文字列を書き込むプログラムをつくりたいのですがうまく行きません。具体的には
↓↓↓
filenameA = "kakikomi.txt"
(中略)
def final_file_out(*m)
fw = open(filenameA, "a")
fw.write(*m)
fw.close
end
↑↑↑

とやっているのですが、これだと
undefined local variable or method `filenameA' for main
と出てしまいます。文字列の使い方が悪いのは分かっているのですが
どうしたらよいのか分かりません。どなたか分かる方助けて頂けないでしょうか。よろしくお願いします。

A 回答 (3件)

中略の部分に何が書かれているのか不明なので何とも助言しにくいのですが、グローバル変数 (変数名の頭に「$」がついているもの) を使いたいということでしょうか?



参考URL:http://www.namaraii.com/rubytips/?%CA%D1%BF%F4%A …
    • good
    • 0
この回答へのお礼

そうです、まさにこういうことが知りたかったんです。ありがとうございます!

お礼日時:2008/10/25 06:08

一行目のfilenameAとdef final_file_out ~ endの中のfilenameAは別物です。


従ってfinal_file_outの引数としてfilenameAを渡してあげなければいけないと思います。

filenameA = "kakikomi.txt"
(中略)
def final_file_out(file, m)
fw = open(file, "a")
fw.write(m)
fw.close
end

final_file_out(filenameA, "abcdefg")
    • good
    • 0
この回答へのお礼

なるほど、こういう書き方もあるんですね。ありがとうございます。

お礼日時:2008/10/25 06:10

メソッドの引数に*をつけてるのも意味がわかりませんがそれはおいといて、



逆引きRuby - 変数とスコープ
http://www.namaraii.com/rubytips/?%CA%D1%BF%F4%A …

の「ローカル変数を定義する」のところを読んでください。
そういうことです。
    • good
    • 0
この回答へのお礼

自分の理解があいまいでしたがこれで整理できました。ありがとうございます。

お礼日時:2008/10/25 06:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!