2017-10-18 4 views
0

Also habe ich große Schwierigkeiten mit dieser Prüfung an der Universität, weil ich mit einem Teil in meinem Ruby-Code stecken bin. Ich kann einfach nicht herausfinden, wieWie kann man einen Hash in einer Datei speichern und später in Ruby verwenden?

"Wenn der Benutzer 2 drückt, soll das Programm nach einer Angestelltennummer fragen und danach nach dem Mitarbeiter suchen. Wenn das Programm es findet, drucken Sie und wenn nicht, drucken Sie eine Nachricht, die es sagt hat es nicht. "

Mein Problem ist, dass ich nicht sicher bin, dass die Informationen in der Datei gespeichert werden. Aber wenn es ... das Problem ist, dass der Hash, den ich gemacht habe, nicht die Information nimmt, die bereits in der Datei gespeichert ist und nur mit den Informationen funktioniert, die er zuletzt erhalten hat.

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 

Ich habe euch zu sagen, dass ich nur für 1 Monat Codierung und die Schule nimmt mich nicht einfach ...

+3

Ich verstehe diesen Code nicht. Warum benutzt du einen 'Hash'? Was ist 'regnr'? Was ist 'Name'? Was ist 'employees.txt'? Bitte geben Sie ein [mcve] des Problems an, einschließlich des tatsächlichen Fehlers/unerwarteten Verhaltens. –

+0

Sie verwenden [= ~] (http://ruby-doc.org/core/String.html#method-i-3D-7E) falsch. – Max

Antwort

0

Ich empfehle yaml Verwendung würde. Sehen Sie sich einige Beispiele zur Verwendung von YAML im Web an. Es ist ein strukturiertes Markup, das Hashes darstellen kann. Sie können einfache Ruby-Objekte wie Hashes und Arrays einfach laden und laden.

require 'yaml' 

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