在这个Ruby练习中,我必须访问一个包含三首歌曲的平面文件,其中包含歌曲的标题,艺术家,以分钟和秒为单位的长度以及文件名。该练习要求执行以下操作:
我继续将以下内容复制并粘贴到纯文本文件中并保存为" songFile":
/jazz/j00132.mp3 | 3:45 | Fats Waller | Ain't Misbehavin'
/jazz/j00319.mp3 | 2:58 | Louis Armstrong | Wonderful World
/bgrass/bg0732.mp3| 4:09 | Strength in Numbers | Texas Red
: : : :
要将歌曲线分成字段,我将其放入终端:
songs = SongList.new
songFile.each do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
songs.append Song.new(title, name, length)
end
puts songs[1]
然后收到这两条错误消息:
NameError: undefined local variable or method `songFile' for main:Object
NoMethodError: undefined method `[]' for nil:NilClass
答案 0 :(得分:0)
打开文件并执行操作。像这样的东西
...
File.open("songFile") do |sf|
sf.each do |line|
...
end
end
...
答案 1 :(得分:0)
假设您在文本文件与脚本相同的目录中
songs = SongList.new
File.readlines('./songFile').each do |song|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
songs.append Song.new(title, name, length)
end
puts songs[1]