rubyによるネットワーク形式のファイルの併合(マージ)

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