Class: MCMD::Mtable

Inherits:
Object
  • Object
show all
Defined in:
ext/mtable/mtable.cpp

Overview

指定した CSV データ全体をメモリに読み込んで処理するクラス以下のような特徴を持つ。

行と列の指定によりセルをランダムにアクセス可能。
読み込み専用であり、データの更新や追加は一切できない。
データは全て文字列として読み込むので、その他の方で利用する時は適宜型変換 (ex. to i) が必要。
メモリが空いている限りデータを読み込む。領域がなくなればエラー終了する。

利用例1

# dat1.csv
customer,date,amount
A,20081201,10
B,20081002,40

tbl=Mtable.new("i=dat1.csv")
p tbl.names       # -> ["customer", "date", "amount"]
p tbl.name2num    # -> {"amount"=>2, "date"=>1, "customer"=>0}
p tbl.size        # -> 2
p tbl.cell(0,0)   # -> "A"
p tbl.cell(0,1)   # -> "B"
p tbl.cell(1,1)   # -> "20081202"
p tbl.cell(1)     # -> "20081201"
p tbl.cell        # -> "A"

利用例2

# dat1.csv
customer,date,amount
A,20081201,10
B,20081002,40

tbl=Mtable.new("i=dat1.csv -nfn") # 一行目もデータと見なす。
p tbl.names       # -> nil
p tbl.name2num    # -> nil
p tbl.size        # -> 3
p tbl.cell(0,0)   # -> "customer"
p tbl.cell(0,1)   # -> "A"
p tbl.cell(1,1)   # -> "20081201"
p tbl.cell(1)     # -> "date"
p tbl.cell        # -> "customer"