#!/usr/bin/env ruby # -*- coding: utf-8 -*- sum = Hash.new(0) all = Hash.new open("sntw.csv", "r") do |c| while csv = c.gets uid, name, height, weight = csv.chomp.split(",") all[uid] = { # 出席番号がキーとなるハッシュを代入する # これにより ハッシュが集まるハッシュ となる "name" => name, "height" => height, "weight" => weight } sum["身長"] += height.to_f sum["体重"] += weight.to_f printf("データ確認: %s\n", name) end end # 出席番号による検索 print "知りたい出席番号?: " u = gets.chomp if all[u] printf("ID:%s %-20s 身長:%8.1f 体重:%5.1f\n", u, all[u]["name"], all[u]["height"], all[u]["weight"]) else puts("該当なし") end # 身長か体重か begin print "ソート基準: 0=身長、1=体重? (0 or 1): " s = gets.to_i end while s<0 || s>1 kijun = ["height", "weight"][s] all.sort_by {|uid, x| x[kijun]}.reverse.each do |u, i| printf("%-14s\t:H=%.2f\tW=%.2f\n", i["name"], i["height"], i["weight"]) end