2011-11-23 21 views
0

我试图读取此.dat文件,然后将内容添加到2d数组。尝试将.dat文件内容添加到ruby中的2d数组中。

Sean 20000.0 5000.0 
John 60000.0 5000.0 
Patricia 50000.0 7000.0 
Lucy 80000.0 4000.0 
Marie 34000.0 6800.0 
Michael 42000.0 3000.0 
Aoife 22000.0 5000.0 
Barry 10000.0 4000.0 
Angela 65000.0 6000.0 
Luke 35000.0 4000.0 
Ciara 8000 5000 
Sean 200000.0 5000.0 

这是我到目前为止的代码,但它给我在gets方法的错误。

class Taxpayer 

    def initialize filename 
    @input = IO.readlines(filename) 
    @info=[] 
    end 

    def set_up 
    size = @input.length 

    i = 0 
    while i < size 
     @info << (@input.gets).split(' ') 
    end 
    end 
end 

回答

1

您@input阵列的每个元素都是一个字符串,所以如果你想每一行存储为一个数组,你需要弹出的每一行关闭@input为空白,他们一起拆空格,然后该数组存储为@info的新元素,就像这样:

@input.each do |x| 
    row = x.split 
    @info << row 
end 

请记住,每一个新的内部阵列中的每个元素将是字符串,所以你要转换的如果您想稍后使用它们,则每个数组的最后两个元素也会浮动。

0

我建议您使用ruby的csv库。只要指定:col_sep期权

CSV.foreach(path, 'r', :col_sep => ' ') do |row| 
    ... 
end 
相关问题