2017-11-10 5 views
1

로를 분할 나는이 형식 "항목 1"에서 분리 라인 인 읽을 수있는 텍스트 파일, 1 "항목 2", 34 "항목 3"를 가지고 6 등루비 : 파일에서 라인을 읽고 구조체

선의 각 부분을 my Struct의 새 인스턴스에 입력하고 싶습니다. 이 작업을 수행하기 위해 사용해야하는 구문은 무엇입니까? 나는 정신 병원을 때리고있다.

Item = Struct.new(:name, :price) 
File.readlines('MASTER_INVENTORY.txt').map do |line| 
    Item.new << line.split 
end 
+0

는'File.readlines ('MASTER_INVENTORY.txt')를보십시오. 지도 {| 선 | Item.new (* line.split)}'. –

+0

아닙니다. 제 line.split이 옳지 않습니다. 각 라인에는 Name 및 Price의 두 항목이 있으며 Struct의 각면에 추가해야합니다. 내가 하드 코드 된 경우, Item.new ("teddy bear", 5)처럼 보일 것입니다. –

+0

레코드 사이의 구분자는 공백입니까? – Kris

답변

0
Item = Struct.new(:name, :price) 
File.readlines('MASTER_INVENTORY.txt').map do |line| 
    line.scan(/"(.*?)",\s*(\S*)/).map do |item, price| 
    Item.new(item, price.to_i) 
    end 
end 
+0

그게 다야! 고맙습니다! 고맙습니다! 고맙습니다! .Scan은 내가 필요한 것입니다! –

관련 문제