2017-10-18 47 views
0

所以我在大学考试中遇到了很大的麻烦,因为我在我的红宝石代码中遇到了一部分问题。我只是不知道如何如何将散列保存到文件中并稍后在ruby中使用它?

“如果用户按2,程序应询问雇员编号,然后搜索雇员。如果程序找到它,然后打印,如果没有,打印一条消息说它没有它。“

我的问题是,我不确定信息是否正确保存在文件中。但是,如果是...问题是我制作的散列没有获取已保存在文件中的信息,只能使用最近收到的信息。

puts "Insert Registration number \n" 
search = gets.chomp 

hash = Hash.new() 
hash = {(regnr) => (name)} 
hash.each do |key, value| 
    puts "#{key} \t | \t #{value}" 
end 

search =~ File.new("employees.txt", "r") 

if hash.has_key? (search) 
    print "The person you were looking for is " 
    puts hash [search] 
else 
    puts "He isn't one of our employees" 
end 

我要告诉你们,我只有被编码一个月,学校不带我容易...

+3

我不明白这段代码。你为什么使用'Hash'?什么是'regnr'?什么是'名称'?什么是'employees.txt'?请提供问题的[mcve],包括实际的错误/意外行为。 –

+0

您正在正确使用[=〜](http://ruby-doc.org/core/String.html#method-i-3D-7E)。 – Max

回答

0

我推荐使用yaml。看看网络上的一些关于使用YAML的例子。这是一个可以代表散列的结构化标记。您可以轻松地转储和加载简单的红宝石对象,如哈希和数组。

require 'yaml' 

parsed = begin 
    employee_hash = YAML.load(File.open("employees.yml")) 
rescue ArgumentError => e 
    puts "Could not parse YAML: #{e.message}" 
end 
相关问题