ファイル・ディレクトリ関係File, Dir, FileTest, FileUtils, Pathname あたりを使う。 実行ファイルと同じディレクトリのファイルを読む File.dirname(__FILE__) + "/test.txt"ディレクトリを作成。すでにあったりして失敗したらエラー。 Dir::mkdir("/home/take/tmp")ディレクトリ階層を一気に作成 FileUtils.mkdir_p('/usr/local/lib/ruby')またはPathname.new('/usr/local/lib/ruby').mkpathファイルかディレクトリが存在するか調べる File.exist? 'hoge'またはFileTest.exist? 'hoge'正規表現
例外rescue p $! ## 例外の情報 p $@ ## backtrace例外を発生させる raiseraise "Errorrrrr!"文字コード変換kconvを使うとお手軽。 #!ruby -Kurequire 'kconv's = "表が怖い噂のソフトキタ━(゚∀゚)━ !!"s_euc = s.toeucs_sjis = s.tosjiss_utf8 = s.toutf8s_utf16 = s.toutf16# EUC-JP で表された 'Hello, るびま!'str_eucjp = "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"str_shiftjis = str.kconv(Kconv::SJIS, Kconv::EUC) # EUC-JP から Shift_JIS に変換str_iso2022jp = str.kconv(Kconv::JIS, Kconv::EUC) # EUC-JP から ISO-2022-JP (JIS) に変換str_utf8 = str.kconv(Kconv::UTF8, Kconv::EUC) # EUC-JP から UTF-8 に変換str_utf16 = str.kconv(Kconv::UTF16, Kconv::EUC) # EUC-JP から BOM 無し UTF-16BE に変換参考: その他UnixTime Time.now.to_i # => 1294134318 とか。秒数が返ってくる。ミリ秒ではない。Time.at(1294134318) # => TimeオブジェクトMD5文字列(16進数を文字列で) require 'digest/md5'p Digest::MD5.hexdigest('abc') #=> '900150983cd24fb0d6963f7d28e17f72'短めでランダムなID(ハッシュ値)文字列生成。16進数を36進数にする。62進数(0-9a-Z)にすればさらに短くできるけど、36進数までしかto_sできない。 Digest::MD5.hexdigest('hoge').to_i(16).to_s(36)=> "dvnlqdltsg0oh7q2bph1oly0u"http://subtech.g.hatena.ne.jp/secondlife/20100224/1267018963 みたいにやれば62進数もいける? idを元に生成する場合はこんな感じ。reverseは値を散らすため。rは一番上の桁が0にならないように。 ## 乱数 + 時間 + ID id = 0 until id time = Time.now until time r = 1 + rand(9) ## 乱数 (r.to_s + time.utc.to_i.to_s.reverse + id.to_s).to_i.to_s(36)endコマンドライン引数 $ hoge.rb abcp ARGV[0] # ==> 'abc' |
