- 论坛徽章:
- 0
|
回复 1# 拖拉机商人
贴个perl代码给你吧。- use Data::Dumper;
- use strict;
- open Fn,"file.note" or die "cant open file file.note!";
- open Fb,"file.b" or die "cant open file file.b!";
- open Fc,"file.c" or die "cant open file file.c!";
- open Fd,"file.d" or die "cant open file file.d!";
- my %node = map {(split)[0,1]}<Fn>;
- my %all;
- my %b;
- my %c;
- my %d;
- while(<Fb>){
- my @bsp=(split) ;
- $b{$bsp[0]}->{$bsp[1]}=[$bsp[2],$bsp[3]];
- $all{$bsp[0]}->{$bsp[1]}=[0,0,0,0,0,0];
- }
- while(<Fc>){
- my @bsp=(split) ;
- $c{$bsp[0]}->{$bsp[1]}=[$bsp[2],$bsp[3]];
- $all{$bsp[0]}->{$bsp[1]}=[0,0,0,0,0,0];
- }
- while(<Fd>){
- my @bsp=(split) ;
- $d{$bsp[0]}->{$bsp[1]}=[$bsp[2],$bsp[3]];
- $all{$bsp[0]}->{$bsp[1]}=[0,0,0,0,0,0];
- }
- foreach my $area(keys %all){
- foreach my $data(keys %{$all{$area}}){
- $all{$area}->{$data}->[0]=($b{$area}->{$data}->[0] or 0);
- $all{$area}->{$data}->[1]=($b{$area}->{$data}->[1] or 0);
- $all{$area}->{$data}->[2]=($c{$area}->{$data}->[0] or 0);
- $all{$area}->{$data}->[3]=($c{$area}->{$data}->[1] or 0);
- $all{$area}->{$data}->[4]=($d{$area}->{$data}->[0] or 0);
- $all{$area}->{$data}->[5]=($d{$area}->{$data}->[1] or 0);
- }
- }
- foreach my $area(sort keys %all){
- foreach my $data(sort keys %{$all{$area}}){
- my $a1 = $all{$area}->{$data}->[0];
- my $a2 = $all{$area}->{$data}->[1];
- my $a3 = $all{$area}->{$data}->[2];
- my $a4 = $all{$area}->{$data}->[3];
- my $a5 = $all{$area}->{$data}->[4];
- my $a6 = $all{$area}->{$data}->[5];
- print "$area $data $a1 $a2 $a3 $a4 $a5 $a6 \n";
- }
- }
复制代码 |
|