RubyでCGIスクリプトを作る下準備・ファイルの読み書き
典型的なファイルの読み書きのデモ。
多分、windowsではflockは使えない。
ftest.rb
#!/usr/local/bin/ruby # # ファイルの読み書きデモ # file1 = "ftest.rb" # このスクリプトのファイル名 file2 = "test.txt" # 書き込みテスト用の空ファイル lock = "YES" # YESならflockを使う ##### ファイルの各行を配列に割り当てて表示 print "■ファイルの各行を配列に割り当てて表示\n" File.open(file1) { |f| $lines = f.readlines } # 括弧が閉じれば自動的にファイルがクローズされる $lines.each { |l| print l } print "\n" ##### ファイルから一行ずつ読み込んで表示 print "■ファイルから一行ずつ読み込んで表示\n" File.open(file1) { |f| while f.gets print $_ end } print "\n" ##### ファイルから数字を読みとり1足して書き込む print "■ファイルから数字を読みとり1足して書き込む\n" File.open(file2, "r+") { |f| if (lock == "YES") f.flock(File::LOCK_SH) # ファイルが閉じれば自動的にロック解除 end count = f.read.to_i count = count + 1 f.pos = 0 # ファイルポインタを先頭にする f.print "#{count}" print "count = #{count}\n" }