Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中逐行读取数据?_Ruby_File Io_Io - Fatal编程技术网

如何在Ruby中逐行读取数据?

如何在Ruby中逐行读取数据?,ruby,file-io,io,Ruby,File Io,Io,我是Ruby新手,正在创建一个扑克游戏应用程序。我试图从一个文本文件中读入每个玩家的卡片。文本文件中的数据如下所示: 8C TS KC 9H 4S 7D 2S 5D 3S AC 5C AD 5D AC 9C 7C 5H 8D TD KS 3H 7H 6S KC JS QH TD JC 2D 8S 等等。每行的前5张是一个人的牌,另外5张是另一个人的牌。我将如何阅读这些数据?我已经编写了一个Card类,它可以根据文件中的表示方式创建卡片 IO.foreach('cards.txt') do |l

我是Ruby新手,正在创建一个扑克游戏应用程序。我试图从一个文本文件中读入每个玩家的卡片。文本文件中的数据如下所示:

8C TS KC 9H 4S 7D 2S 5D 3S AC
5C AD 5D AC 9C 7C 5H 8D TD KS
3H 7H 6S KC JS QH TD JC 2D 8S
等等。每行的前5张是一个人的牌,另外5张是另一个人的牌。我将如何阅读这些数据?我已经编写了一个Card类,它可以根据文件中的表示方式创建卡片

IO.foreach('cards.txt') do |line|
  cards = line.chomp.split.map { |c| Card.new(c) }
  hand1 = cards[0, 5]
  hand2 = cards[5, 5]
  #...
end
或者


我已经回答了一部分,但你基本上答对了。我唯一的不同点是,你可以做
line.chomp.split.map(&Card.method(:new))。每个片段(5)
。@Kimball:不是Python,TIMTOWTDI:)
handpairs = File.open('cards.txt') do |f|
  f.each_line.map { |line|
    line.chomp.split.each_slice(5).map { |cs|
      cs.map { |c| Card.new(c) }
    }
  }
end