2017-11-10 10 views
1

にそれらを分割ファイルからの読み取り行は、私はこのフォーマット 「アイテム1」に分離しているラインである読みたいテキストファイル、1 「アイテム2」、34 「ITEM3」、6 などを持っていますルビー:構造体

私は、構造体の新しいインスタンスに線の各部分を入力したいと思います。これを達成するためにはどのような構文を使用する必要がありますか?私は精神的な壁にぶつかっている。

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の2つの項目があり、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は私が必要なものです! –