From: Koyama Hideo Date: 1999-05-22T22:10:12+09:00 Subject: [ruby-list:14428] sort もとcobol屋の小山と申します。 こんな感じのデータを集計する。 9999,1,1,1,101,4,1,1;1;01;00,5555,0 9999,1,1,1,101,9,1,1;1;01;00,3255,0 9999,1,1,1,101,4,1,1;1;02;00,200,0 9999,1,1,1,101,9,1,1;1;02;00,200,0 9999,1,1,1,101,4,1,1;1;03;00,504,0 9999,1,1,1,101,9,1,1;1;03;00,504,0 9999,1,1,1,101,4,1,1;1;04;00,630,0 下記のような簡単な集計プログラムをつくってみたのですが hinname=Hash.new() hin_cnt=Hash.new() # 品名テーブル読み込み hin=open("hin.txt","r") hin.each_line do |line| f = line.chomp.split(/,/) hinname[f[0]]=f[3] # 品名格納 hin_cnt[f[0]]=0 # 件数初期化 end hin.close # データ読み込み inf=open("kd2.txt","r") inf.each_line do |line| f = line.chomp.split(/,/) if f[5]= "9" # ある項目が '9'のとき hin_cnt[f[7]]+=1 # カウント end end inf.close # 結果出力 $,="," hinname.each_key do | hinno | print hinno,hinname[hinno],hin_cnt[hinno],"\n" end 出力結果 1;2;06;01,みかん,371, 1;2;09;00,りんご,257, 2;1;18;00,ほうれんそう,436, . . 結果を出力するときに hinnoでソートする方法が ちょっと分からなかったのですがどなたかに御教示いただけると 助かります。 また、rubyの世界の模範的なプログラムをお示しいただけると 嬉しいと思います。 小山英夫 : fa8h-kym@asahi-net.or.jp