class CSV::IOReader + CSV::Reader
クラスの継承リスト: CSV::IOReader < CSV::Reader < Enumerable < Object < Kernel
要約
CSVの読み込み処理を行うクラス
特異メソッド
create(str_or_readable, fs = ',', rs = nil) -> CSV::StringReader
-
CSVデータを解析して、解析結果を格納したCSV::StringReaderを返します。
- [PARAM] str_or_readable:
- パースする対象の文字列
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
new(io, fs = ',', rs = nil) -> CSV::IOReader
-
引数に従い、CSV::IOReaderクラスのオブジェクトを生成します。
- [PARAM] io:
- 読み込み先の指定。
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
parse(str_or_readable, fs = ',', rs = nil) -> CSV::StringReader
parse(str_or_readable, fs = ',', rs = nil) {|row| ... } -> nil
-
CSVデータを解析して、CSV::StringReaderを返します。 ブロックに渡された場合はパースした結果を1列ずつArrayとして渡します。
- [PARAM] str_or_readable:
- パースする対象の文字列
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
注意
パース時に""(空文字)と値なしを区別します。 例えば、a, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。
例:
CSV::Reader.parse("1,2,3\nA,B,C\n"){|row| p row }
インスタンスメソッド
close -> nil
-
内部的にterminateメソッドを呼び出します。
close_on_terminate -> true
-
本メソッドを呼び出すことで終了(CSV::IOReader#terminate メソッド実 行)時に CSV::IOReader オブジェクトが new メソッドで指定した読み込 み先のIOクローズ処理を行います。
each {|row| ... } -> nil
-
自身から 1 行ずつ読み込み、それを引数として与えられたブロックを実行します。
shift -> Array
-
CSVをパースした結果から1行分を取り除き、取り除いた1行を配列として返します。 shiftは破壊的メソッドです。
注意
パース時に""(空文字)と値なしを区別します。 例えば、a, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。
privateメソッド
get_row(row) -> Fixnum
-
CSVデータの1行分のデータを取得します。
1行分のデータを取得し、パラメータrowに配列として出力します。 返り値として、セルの数(配列のサイズ)を返します。
- [PARAM] row:
- 1行分のデータを格納する配列
get_row(row) -> ()
-
本メソッドは再定義 or サブクラスで定義されることを想定されています。 再定義せずに呼び出した場合は例外NotImplementedErrorが発生します。
initialize(dev) -> ()
-
本メソッドは再定義 or サブクラスで定義されることを想定されています。 再定義せずに呼び出した場合は例外RuntimeErrorが発生します。
terminate -> nil
-
オブジェクト破棄を行います。 close_on_terminateメソッドが既に呼び出されていれば、IO(newメソッドでパラメタとして渡したオブジェクト)の終了処理を行います。
terminate -> ()
-
終了時処理を行う場合に再定義してください。