2017-10-18 46 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 
相關問題