Ruby 初心者スレッド Part 31
レス数が950を超えています。1000を超えると書き込みができなくなります。
0982デフォルトの名無しさん
2009/10/24(土) 07:17:10> これを1回のFile.openで書きたいのですが
# 読み書き両用でファイルをオープンする
File.open("text.txt", "r+") do |f|
# 排他的ロックをかける
f.flock(File::LOCK_EX)
# ファイルを読み込み
buf = []
f.each do |line|
buf << line if line =~ /^¥w+$/
end
# ファイルポインタを先頭に戻す
f.rewind()
# ファイルサイズをゼロに切り詰める
f.truncate(0)
# ファイルを書き込み
buf.each {|line| f.write(line) } # or f.write(buf.join)
end # ファイルが閉じられるときにロックも自動的に解除される
レス数が950を超えています。1000を超えると書き込みができなくなります。