2

次の構造のテキスト ファイルがあります。

regular: 12/09/2010, 15/09/2012, 16/09/2012
rewards: 17/09/2010, 18/09/2012, 19/09/2012
rewards: 20/09/2010, 21/09/2012, 22/09/2012

そして、次のようにマトリックスに保存したい:

my_matrix = [['regular', '12/09/2010', '15/09/2012', '16/09/2012'],
             ['rewards', '17/09/2010', '18/09/2012', '19/09/2012'],
             ['regular', '20/09/2010', '21/09/2012', '22/09/2012']
            ] 

私はこれを試しました:

File.open(text_file).each_line do |line|

    @costumer_request = line.delete!(':').split
    @costumer_request = line.delete!(',').split

しかし、それはこれを返します: @costumer_request ['regular', '20/09/2010', '21/09/2012', '22/09/2012']

どうすればこれを解決できますか?

4

3 に答える 3

2
File.open(text_file){|io| io.each_line.map{|line| line.split(/[:,\s]+/)}}
于 2013-04-30T13:03:39.510 に答える
2
File.open('foo', 'r') do |f|
  f.lines.map do |line|
    line.chomp.split /[:,] /
  end
end

#=> [
# ["regular", "12/09/2010", "15/09/2012", "16/09/2012"],
# ["rewards", "17/09/2010", "18/09/2012", "19/09/2012"],
# ["rewards", "20/09/2010", "21/09/2012", "22/09/2012"]
#]
于 2013-04-30T13:05:20.850 に答える
1

あなたのフォーマットがまさにあなたが示しているものである場合は、次のこともできます:

File.open(file).each_line.map do |l|
    l.split.map { |e| e.chomp(/,:/) }
end
于 2013-04-30T13:11:38.690 に答える