Hatena::Grouprubyist

krystal: プログラミング超初心者(文系)

2008-12-25 (Thu)たのしいRuby練習問題

★☆★☆★☆★☆★ ⊱❤❤❤Merry Christmas!!❤❤❤⊰ ★☆★☆★☆★☆★

19:41

P285 IOクラス練習問題(1)

  • あるファイルの内容を別のファイルにそのままコピーするメソッドcopy_fileを定義しよう
def copy_file(file1, file2)
  open(file1){|from|
    open(file2, "w"){|to|
      while line = from.gets
        to.write(line)
      end
    }
  }
end
copy_file("test.rb", "copy.rb")

コピー元であるfile1から一行ずつgetsして、コピー先ファイルであるfile2へwrite

[2009/01/06]先ほど本を読んだらこのような書き方があった

def copy_file(file1, file2)
  open(file1){|from|
    open(file2, "w"){|to|
      to.write(from.read)
    }
  }
end
copy_file("test.rb", "copy.rb")

P285 IOクラス練習問題(2)

  • Unixで使われるtailコマンドと似たことができるメソッドtailを定義しよう
def tail(line_num, file)
  arr = []
  arr2 = []
  open(file){|f|
    while line = f.gets
      arr << line
    end
  }
  for i in 1..line_num
    arr2 << arr.pop
  end
  puts arr2.reverse

end
tail(11, "copy.rb")

fileから内容を一行ずつ配列arrに入れて、配列arrからline_num回popしたもの(行)を別の配列arr2に入れる。arr2をreverseして出力。

readlinesを使ってみた
def tail(line_num, file)
  open(file) {|f|
    puts f.readlines[(f.readlines.size - line_num)..(f.readlines.size - 1)]
  }
end
tail(7, "copy.rb")

entottoentotto 2008/12/25 20:09 tail コマンドの魅力は -f オプションだと思います。

「tail.rb -f -n 10 some.log を実行したら、some.logの最後10行を出力したまま、終了せずに、some.logに何か追記されたらさらにそれを出力する。」ような tail.rb がほしいなぁ。> サンタさん

ちなみにファイルへの追記は >> を使うとできます。
$ echo "abc" >> some.log

krystalkrystal 2009/01/06 13:18 >entottoさん
コメントありがとうございます。
昨日vm wareを使ってtail -fコマンドを確認してみて、どういう動作するかが分かりました。やり方考えてみます。

WilliamlopWilliamlop 2019/02/02 09:56 cialis international refils
cialis and alcohol
<a href=https://kellyannehulme.com>cialis buy online</a>
cialis verified by visa uk
cialis daily dose price
https://kellyannehulme.com
cialis pharmacy price comparison
low dose cialis side effects
<a href=https://kellyannehulme.com>Cialis 20 mg</a>
when is cialis off patent
online apotheke schweiz cialis
https://kellyannehulme.com

WilliamlopWilliamlop 2019/02/02 09:56 liquid cialis research
cialis online coupon code
<a href=https://kellyannehulme.com>cialis buy online</a>
genuine cialis price
cialis 5mg price in pakistan
https://greatwinesgrandhouses.com
canadian pharmacy cialis ltd
canadian...5mg cialis
<a href=https://greatwinesgrandhouses.com>20 mg cialis</a>
coming off cialis
over counter cialis
https://greatwinesgrandhouses.com

ArnoldferryArnoldferry 2019/02/05 18:01 cialis price goodrx
do i need a prescription for cialis in south africa
<a href="http://cialistlm.com">Cheap Cialis</a>
cialis uae
what is the dosage for cialis
<a href="http://cialistlm.com">Cheap Cialis buy</a>
cvs price for cialis
price of cialis in kenya
<a href="http://cialisfurr.com">Cheap Cialis</a>

ArnoldferryArnoldferry 2019/02/05 18:03 cialis online shop deutschland
cialis cvs
<a href="http://xcialisxx.com">Cheap Cialis buy</a>
what is the drug cialis used for
substitute for cialis
<a href="http://cialistlm.com">Cheap Cialis buy</a>
about cialis
side affects of cialis
<a href="http://cialisfurr.com">Cheap Cialis</a>

ゲスト



トラックバック - http://rubyist.g.hatena.ne.jp/krystal/20081225