大昔にRubyでテキストファイルの読みこみって、たとえばこうやってた人は多いかな?
s = [] open(filename,"r").each{|x| s[s.length] = x.clone end d = s.join("")
でもでも、今ならこんな事しなくていいのよ。
d = nil File.open(f) do |x| d = x.read end
こんな感じかしら。
ちなみに、書き出しだって昔は、こんな人多かったんじゃない?
open(filename,"w") do |w| w.print "データ" end
こっちは、今はこうかしら?
File.write(filename,"データ")
たとえば、CP932(SJIS)データの読み込みで文句を言われたとするよね?で、変換しながら出したいと。読み込んだデータを配列にしたい時、splitあたりで怒られるのよね。
そんな時には、たとえばこんな風に書いてみるのはどうかしら?
data = nil File.open(filename) do |file| data = NKF.nkf("-w",file.read).gsub(/\r/,'').split("\n") end
一気に読み込みつつ、NKFでUTF-8にしたり、DOS形式のReturnが邪魔なので削除した後、Newline(\n)で分解して配列にしたのね。どんどんメソッドを継ぎ足してパイプ的に連続処理しちゃうところが、いかにもRubyよね。
まぁ、改行まわりの小細工は環境によって違う(特にMac)から、そこは気を付けてね。