#author("2016-04-30T14:44:04+09:00","default:wikiwriter","wikiwriter")
*目次 [#d55b1a28]
#contents

*関連ページ [#w944b4ad]
-[[Ruby]]

*基本 [#xf3376b6]
csv.rbが標準添付されているのでそれを使う。

*全行読み込み [#s254dcfd]
CSV.readlinesを使う。
 lines = CSV.readlines(filename)
-CSV.readlinesを使う。配列の配列が帰ってくる
#pre{{
  CSV.readlines("test.csv").each do |row|
    p row
  end
  #=>
  #["a", "b", "c"]
  #["d", "e", "f"]
}}

*文字列読み込み [#b1ed62fd]
-CSV.parseを使う。配列の配列が帰ってくる
#pre{{
  CSV.parse("a,b,c").each do |row|
    p row
  end
  #=>
  #["a", "b", "c"]

  CSV.parse("a,b,c\nd,e,f").each do |row|
    p row
  end
  #=>
  #["a", "b", "c"]
  #["d", "e", "f"]

  r = CSV.parse("x,y,z")
  p r
  #=>
  #[["x", "y", "z"]]
}}

*Ruby1.9対応 [#pf9c30f5]

**エンコーディングを指定した読み込み [#s79e2dfe]
-ファイルの文字コードが分かっている場合、foreachでencodingを指定して読み込める
#pre{{
    CSV.foreach(filename, encoding:"Windows-31J") do |row|
    end
}}

**エンコーディングを指定した書き出し [#oa4c937a]
-ファイルのエンコーディングをopenで指定する。
#pre{{
    CSV.open(filename, "wb:SJIS") do |csv|
       csv << ["あ", "い", "う"]
    end
    CSV.open(filename, "wb", encoding:"SJIS") do |csv|
       csv << ["か", "き", "く"]
    end
}}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS