Hatena::Grouprubyist

てーげーRuby

2008-07-06

練習問題 IOクラス

| 02:36

(1)あるファイルの内容を別のファイルにそのままコピーするメソッドcopyを定義してください。。

copyメソッドは2つの引数を取ります。

copy(コピー元ファイル名、コピー先ファイル名)


コピー元ファイル名のファイルの中身をコピー先ファイル名にコピーします。

def copy(src, dest)
  df = File.open(dest, "w")
  File.open(src, "r") do |f|
     while line = f.gets
        df.puts line
     end
  end
end

(2)Unixで使われるtailコマンドと似たことができるメソッドtailを定義してください。

tailメソッドは2つの引数を取ります。

tail(行数、ファイル名)

ファイルの最後の行から数えて指定された行数分だけ、そのファイルの中身を出力するものとしまます。つまり、ファイルsome_file.txtテキストを


def tail(linesize, src)
  File.open(src, "r") do |f|
    ary = f.to_a
    if ary.size > linesize
      ary[linesize*-1..-1].each do |line|
         puts line
       end
    else 
      ary.each do |line|
         puts line
       end
    end
  end
  return nil
end