himitsu girlsの日記

2007-02-17

[]17章 練習問題(2)

ls -tのようにファイルを時刻順にならべるメソッド

def ls_t(dir)
  list = {}
  entries = Dir.entries(dir)
  entries = entries.sort_by {|name| File.mtime(File.join(dir, name)) }
  entries.each {|name| puts name}
end
ls_t(".")
トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20070217

2007-01-27

[]17章 練習問題(1)

"2007年1月27日午後3時10分32秒"のような「年・月・日・時・分・秒」を使った時刻をTimeオブジェクトに変換して返すメソッドを定義

require "time"
def jparsedate(str)
  # "2007年1月27日午後3時10分32秒" -> "20070127031032"
  fstr = str.scan(/\d+/).map{|s| s.size == 1 ? "0".concat(s) : s}.join
  t = Time.parse(fstr)
  m = /午後/.match(str)
  t += 60 * 60 * 12 unless m.nil? # 午後だったら12時間進める
  return t
end
p jparsedate("2007年1月27日午後3時10分32秒")

年・月・日・時・分・秒のフォーマットしか受け付けません。解答はいろんなフォーマットに対応してるのね。

ShiftJIS:CR+LFで保存したコードを貼り付けたら文字化けしたので、EUC-JP:LFに変換して張り付けたら解決した。今まで文字コードなんてを気にして無かった気がするけどなぁ。

WongWong2013/01/16 19:43Such an impressive answer! You've betean us all with that!

WongWong2013/01/16 19:43Such an impressive answer! You've betean us all with that!

pwbjdjzpwbjdjz2013/01/17 16:49LfpDRl <a href="http://livgeeljvewr.com/">livgeeljvewr</a>

bmrjoxbmrjox2013/01/17 16:49yEFaC7 <a href="http://spyvrvgvtwms.com/">spyvrvgvtwms</a>

sdohbzzpsdohbzzp2013/01/17 16:49YdeOLR <a href="http://fhoiwdwnxcav.com/">fhoiwdwnxcav</a>

bmrjoxbmrjox2013/01/17 16:49yEFaC7 <a href="http://spyvrvgvtwms.com/">spyvrvgvtwms</a>

cnxuzavbocnxuzavbo2013/01/17 21:19OwdS1g , [url=http://arrxwhlqjayv.com/]arrxwhlqjayv[/url], [link=http://trjkayeoukoy.com/]trjkayeoukoy[/link], http://uvjtbpfvsooe.com/

トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20070127

2007-01-03

[]16章 練習問題(1)

Rubyが利用できるライブラリファイル名を表示するメソッド

def print_libraries
  $:.each {|path|
    next unless File.directory?(path)
    Dir.open(path) {|dir|
      dir.each {|name|
        puts name if name =~ /\.(rb|so)$/
      }
    }
  }
end
print_libraries

[]16章 練習問題(2)

コピー元のディレクトリ名のファイルディレクトリを、コピー元のディレクトリ名のディレクトリの下にコピーするメソッド

FileUtils.cp_r("../test", "../test2")

これで一発っぽいので略。

[]16章 練習問題(3)

Unixコマンドのdu

def du(dir)
  size = 0

  Dir.open(dir) {|d|
    d.each {|name|
      path = File.join(dir, name)
      if File.directory?(path)
        next if name == "." or name == ".."
        size += du(path)
      else
        st = File.lstat(path)
        size += st.size
        printf("%6d %s\n", st.size, path)
      end
    }
  }
  printf("%6d %s\n", size, dir)
  return size
end
du(".")

du -ab相当。解答例は同じ再帰なのにシンプルだなぁ。再帰は苦手だ。

トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20070103

2006-12-02

[]15章 練習問題(2)

Unixのtailコマンドに似たことができるメソッドtail

def tail(line, fname)
  io = open(fname)
  lines = io.readlines
  io.close
  ((lines.size-line)...lines.size).each {|i|
    print lines[i]
  }
end
tail(5, "hoge.txt")

eachの部分の気持ち悪い

CeciliaCecilia2012/10/16 01:38Articles like this just make me want to visit your wesibte even more.

vjhnjmhvjhnjmh2012/10/16 21:14YyoeY6 <a href="http://hakiycexqozl.com/">hakiycexqozl</a>

xvrsruwmexvrsruwme2012/10/19 13:31VYfDkP , [url=http://quzmcisaibyh.com/]quzmcisaibyh[/url], [link=http://iwmoexbuquot.com/]iwmoexbuquot[/link], http://ydbyaemazvtu.com/

jtkcqawbxgjtkcqawbxg2012/10/20 01:022M9sXH <a href="http://tsvzbcymbfwu.com/">tsvzbcymbfwu</a>

mbdxlmwqfvmbdxlmwqfv2012/10/20 11:13VdvUgH , [url=http://fkabkmnlfvyk.com/]fkabkmnlfvyk[/url], [link=http://fmkwuftsziif.com/]fmkwuftsziif[/link], http://qdfnudoutskx.com/

トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20061202

2006-11-28

[]15章 IOクラス 練習問題(1)

あるファイルを別のファイルコピーするメソッド

def copy(src_file, dst_file)
  sio = open(src_file)
  dio = open(dst_file, "w")
  
  while line = sio.gets
    dio << line
  end
  sio.close
  dio.close
end
copy("hoge.txt", "hoge2.txt")

[]

るびまの添削記事を見ると、前解いた問題みたいにArray#to_s配列の連結に使っちゃだめなんだね。思いっきり使ってるし。気をつけよう。

はてな記法が覚えられない件

はてダ日記作成画面と同じにならないの><

VineyViney2011/09/08 14:53Okay I'm conivnecd. Let's put it to action.

rhmiclzhvwrhmiclzhvw2011/09/08 23:30PpZEtT <a href="http://tciypuoerllj.com/">tciypuoerllj</a>

hdkwkxtuuxehdkwkxtuuxe2011/09/09 20:35PjO4pO , [url=http://pmmbtcayuakj.com/]pmmbtcayuakj[/url], [link=http://uhugeycmvlam.com/]uhugeycmvlam[/link], http://htbthrphwasc.com/

qbndlopdqbndlopd2011/09/10 18:35tGbeJx <a href="http://vzjjvpoufdia.com/">vzjjvpoufdia</a>

wjzigcrywjzigcry2011/09/12 19:35pNNNSY , [url=http://ezrujfvnrtrn.com/]ezrujfvnrtrn[/url], [link=http://dewgmisoxbjb.com/]dewgmisoxbjb[/link], http://fmjhsbuntydq.com/

トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20061128