<- Beispiel: Adressbuch
Sortierung des Adressbuchs ->

Das Adressbuch ausgeben

Nun werden wir lernen, was wir mit dem Adressbuch anstellen können. Etwas präziser, wir werden lernen, wie wir das Adressbuch ausgeben sowie sortieren können.

Komplexe Strukturen ausgeben

Sie können immernoch "puts adressbuch" eingeben, aber die Ausgabe ist hässlich und nicht sehr hilfreich (versuchen Sie es und sehen Sie es selbst). Wir werden nun selber definieren, wie die Ausgabe auszusehen hat.

Das Adressbch ist ein Array, also verfügen wir über die Methode Array#each. Beginnen wir damit, nur den Vornamen der Kontakte auszugeben:


adressbuch.each do |person|
	puts person["vorname"]  
end
                       

Die Ausgabe sieht so aus:


Josef                     
Herbert
Tim
                       

Vor- und Nachname

Der nächste Schritt ist Vor- und Nachnamen auszugeben:


adressbuch.each do |person|
    vor  = person["vorname"]  
    nach = person["nachname"]
    puts vor + " " + nach
end
                       

Ergibt:


Josef Adams
Herbert Smith
Tim Koh
                       

Telefonnummer


adressbuch.each do |person|
    vor  = person["vorname"]
    nach = person["nachname"]
    tel  = person["telnr"]
    
    puts vor + " " + nach + ":"  
    puts "    " + telnr
end
                       

Ausgabe:


Josef Adams:
    (301) 364-8924
Herbert Smith:
    (301) 345-9837
Tim Koh:
    (301) 354-2975
                       

Adresse

Zuletzt noch das Adressbuch hinzufügen und eine Trennung zwischen den Einträgen.


adressbuch.each do |person|

    #  Name und Telefonnr.  
    vor   = person["vorname"]
    nach  = person["nachname"]
    telnr = person["telnr"]

    puts vor + " " + nacht + ":"
    puts "    " + telnr
   

    # Adresse
    strasse = person["adresse"]["strasse"]  
    stadt   = person["adresse"]["stadt"]
    land    = person["adresse"]["land"]
    plz     = person["adresse"]["plz"]

    puts "    " + strasse
    puts "    " + stadt
    puts "    " + land + ", " + plz


    # Eine Leerzeile um die Einträge zu trennen  
    puts ""
end
                       

Das ergibt:


Josef Adams:
    (301) 364-8924
    23 St George St.
    Silver Spring
    MD, 20465

Herbert Smith:
    (301) 345-9837
    43 Main St. W
    Washington
    DC, 29847

Tim Koh:
    (301) 354-2975
    324 Campus Dr.
    College Park
    MD, 23659

                       
<- Beispiel: Adressbuch
Sortierung des Adressbuchs ->