2011-11-23 3 views
0

.dat 파일을 읽고 2d 배열에 내용을 추가하려고합니다. .dat 파일 내용을 ruby의 2 차원 배열에 추가하려고합니다.

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 배열의 각 요소는, String의에서 빈 :col_sep을 지정 그들을 따라 분할 공백, 다음과 같이 @info의 새로운 요소로 해당 배열을 저장 : 당신이를 변환 할 수 있습니다, 그래서

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

, 새로운 내부 배열의 각각의 각 요소는 문자열 될 것 명심 나중에 사용하려는 경우 각 배열의 마지막 두 요소도 함께 표시됩니다.

0

ruby의 csv 라이브러리를 사용하는 것이 좋습니다. 다만, 옵션

CSV.foreach(path, 'r', :col_sep => ' ') do |row| 
    ... 
end 
관련 문제