立石です。 Date: Sat, 22 May 1999 22:10:12 +0900 From: Koyama Hideo<fa8h-kym / asahi-net.or.jp> fa8h-kym> hinname=Hash.new() fa8h-kym> hin_cnt=Hash.new() fa8h-kym> # 品名テーブル読み込み fa8h-kym> hin=open("hin.txt","r") fa8h-kym> hin.each_line do |line| fa8h-kym> f = line.chomp.split(/,/) fa8h-kym> hinname[f[0]]=f[3] # 品名格納 fa8h-kym> hin_cnt[f[0]]=0 # 件数初期化 fa8h-kym> end fa8h-kym> hin.close fa8h-kym> # データ読み込み fa8h-kym> inf=open("kd2.txt","r") fa8h-kym> inf.each_line do |line| fa8h-kym> f = line.chomp.split(/,/) fa8h-kym> if f[5]= "9" # ある項目が '9'のとき fa8h-kym> hin_cnt[f[7]]+=1 # カウント fa8h-kym> end fa8h-kym> end fa8h-kym> inf.close fa8h-kym> # 結果出力 fa8h-kym> $,="," fa8h-kym> hinname.each_key do | hinno | fa8h-kym> print hinno,hinname[hinno],hin_cnt[hinno],"\n" fa8h-kym> end fa8h-kym> 結果を出力するときに hinnoでソートする方法が fa8h-kym> ちょっと分からなかったのですがどなたかに御教示いただけると fa8h-kym> 助かります。 このソースをあまり変更せずに行なうのであれば hinname.keys.sort.each{|hinno| print hinno,hinname[hinno],hin_cnt[hinno],"\n" } とするのはいかがでしょうか? 他の方法だと、 a1 = {'hinno' => num1, 'hinname' => name1, 'hin_cnt' => cnt1} a2 = {'hinno' => num2, 'hinname' => name2, 'hin_cnt' => cnt2} .... というようなhashなどでそれぞれの項目を格納しておいて ary = [a1,a2,....] ary.sort!{|x,y| x['hinno'] <=> y['hinno']} とやると個人的にスマートではないかとおもいますがいかがでしょうか? ;; あくまで主観なんですが、、、、(^^; ちなみに sort! のブロックでsortにおける順序付けを行なうため の式を書いています。