www.pudn.com > filecollector.rar > eric_hlr_js_parser.p


#!/usr/local/perl5/bin/perl
use FileHandle;
use integer;
use AdvTime;


my( $usage );
$usage = "\nUsage:\t$0    \n\n";


#main program 

  my $source_file_org  = $ARGV[0];
  my $dest_dir = $ARGV[1];
  my $ne_name = $ARGV[2];
  die $usage if(!($source_file_org && $dest_dir && $ne_name ));
  
  my ( $source_file, $dest_file, $start_time , $end_time );
  $source_file = `ls $source_file_org`;
  chomp $source_file ;
 
  $dest_file = $dest_dir."/"."hlr_sub_js.txt" ;
  
  my $source_r = new FileHandle("$source_file") || die "can not open $source_file\n";

  my ( $line , $sub_in_hlr , $sub_in_achlr );
  while( $line = <$source_r> ){
         if( $line =~ m/^\s*501\s+ASD\s+THRESH1\s+\d+\s+(\d+)\s*$/ ){
              $sub_in_hlr=4*$1 ;
              next ; 
         } 
         if(  $line =~ m/^\s*261\s+THRESH1\s+\d+\s+(\d+)\s*$/ ){
              $sub_in_achlr = $1;
         } 

  }  
  close($source_r);

#  process stop time 
  $start_time = `date '+%Y-%m-%d %H' `;
  chomp($start_time);
  $start_time .=  ":00:00";
  $time_hd = new AdvTime(FORMAT=>"%0.4dYY-%0.2dMM-%0.2dDD %0.2dhh:%0.2dmm:%0.2dss") || die $@;
  $time_hd->SetTime($start_time);
  $stop_time = $time_hd->fetch("+1 hour");

#  output to dest file 
  my $dest_r = new FileHandle("$dest_file") ;
  my @all_line =();
  if( $dest_r  ){
      @all_line = <$dest_r> ;
      close($dest_r);
  }

  my $maxLines = 72 ;
  my $realLines = @all_line ;
  my @out_line ;
  if($realLines > $maxLines ){
     for($i = 0  ; $i< $maxLines ; $i++){
         $out_line[$i] = $all_line[$realLines-$maxLines+$i]; 
     }
     $realLines = $maxLines ;
  }else{
     @out_line = @all_line ;
  }

  my $dest_w = new FileHandle(">$dest_file") || die "can not open $dest_file\n";
  for($i = 0  ; $i< $realLines ; $i++){
       print $dest_w "$out_line[$i]";
  }
  print $dest_w "$start_time\t$stop_time\t$ne_name\t$sub_in_hlr\t$sub_in_achlr\n";

#end main program