2つのファイル(データファイルと
ネットワークファイルを)を一列目をキーに
併合する。
ネットワークファイルは
リスト表現されている。
イメージとしては、
file1.csv
1, 44, a
2, 55, bb
3, 54, cd
4, 543, df
5, 53, ef
file2.csv
1, 4
1, 5
2, 4
2, 3
3, 2
のように併合し、標準出力にかきだす。
1, 4, 44, 543, a, df
1, 5, 44, 53, a, ef
2, 4, 55, 543, bb, df
2, 3, 55, 54, bb, cd
3, 2, 54, 55, cd ,bb
code=[]; name=Hash.new(); employee=Hash.new(); sales=Hash.new(); sougyou=Hash.new(); seturitu=Hash.new(); gyousyu=Hash.new(); jyuusyo=Hash.new(); print "start\n" File.open("file1.csv","r")do|f1| a=[]; i=0; f1.each(){|str| a=str.split(/,/); if a[0].length!=0; then name[a[0]]=a[7]; sales[a[0]]=a[76].to_i+0; employee[a[0]]=a[24].to_i+0; seturitu[a[0]]=a[22].to_i+0; sougyou[a[0]]=a[21].to_i+0; gyousyu[a[0]]=a[36].to_i+0; jyuusyo[a[0]]=a[11].to_i+0; i=i+1; end } end i=0; print "middle\n" File.open("file2.csv","r")do|f2| f2.each{|str| a=str.split(/\s* \s*/) a[1]=a[1].chomp; str12345=[a[0],a[1],sales[a[0]],sales[a[1]],employee[a[0]],employee[a[1]],sougyou[a[0]],sougyou[a[1]],seturitu[a[0]],seturitu[a[1]],gyousyu[a[0]],gyousyu[a[1]],jyuusyo[a[0]],jyuusyo[a[1]],name[a[0]],name[a[1]]].join(","); i=i+1; puts str12345; #print a[0],",",a[1].chomp,"\n" } end