2017-10-18 22 views
0

私はルビーコードの一部にこだわられているので、私は大学でこの試験に大きな問題を抱えました。ファイルにハッシュを保存して後でそれをrubyで使う方法は?

"ユーザーが2を押すと、プログラムは従業員番号を尋ね、その後従業員を検索しなければなりません。プログラムが見つかった場合は印刷し、そうでなければ印刷しますそれを持っていません。

私の問題は、私は情報がファイルにcorectly保存されていることはよく分からないということです。しかし、それが問題なのは、私が作ったハッシュが、すでにファイルに保存されている情報を取っておらず、最後に受け取った情報だけで動作するということです。

私はあなたに私は一ヶ月のためにコード化されており、学校は簡単に私を取っていない人たちに伝える必要があり
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

私はこのコードを理解していません。なぜあなたは 'ハッシュ'を使っていますか? 'regnr'とは何ですか? 'name'とは何ですか? '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 
関連する問題