#!/usr/bin/perl -w

############Program prebere le števila, izpusti glavo

#======================procedure========================

sub fort_format {
     $forform = shift;
#    $forform="2i2,i9";  tudi to priblizno deluje

     @vrst=split(",",$forform);
     $outform="";
 #    my ($i,$j,$wid,$numb);

     foreach $i (@vrst) {
#     print $i. "\n";

         if ($i =~ /(\d+)[iI](\d+)/ ) {
           $numb = $1;
           $wid = $2;
         } elsif ($i =~ /[iI](\d+)/ ) {
           $numb=1;
           $wid = $1;
         } elsif ($i =~ /(\d+)[fF](\d+)\.?(\d+)?/ ) {
           $numb = $1;
           $wid = $2;
         } elsif ($i =~ /[fF](\d+)\.?(\d+)?/ ) {
           $numb=1;
           $wid = $1;
         } else {
           $numb=0;
         }

         if ($numb >= 1 ) {
           for ($j=1; $j<=$numb; $j++) {
              $outform .= "A${wid} ";
           }
         }
     }
                      
#spodaj je primer logike, ki jo izvaja sub-rotina, dela prvi zapis za unpack
       #i62i3 je A6 A3 A3
#@bits = unpack("A2A3 A1","vector");
#print "$bits[0] $bits[1]   $bits[2]\n";
       #izpis bo taksen ve sta 2 prvi mesti,cto so 3 mesta naprej,o je 1 mesto, glej spodaj
#ve cto   r
# tako lahko izpisem spremenljivko v sub rutini
# print $outform. "\n";
  return $outform;

}



#========================================================
print"Branje iz ene datoteke in dajajnje v drugo datoteko\n";



open (PISIV,">izhod1.txt") || die "ne morem narediti datotelke";
open (VHODRADAR,"<a.a") || die "ne morem odpreti datoteke  $!";


$formatradar="401i6";

$ii=0; $jj=0;

#berem iz fajla
while ( defined($instr=<VHODRADAR>) ) {
          chomp($instr); #$instr je celotna vrstica iz bralne datoteke !!!!!!!!!!!!!!!!!!!!!!
         @vrstica_radar=unpack(fort_format($formatradar),$instr);

####Preberem datum in čas iz glave datoteke

if ($ii==5){
	$leto=substr($instr,10,4);
	$mesec=substr($instr,15,2);
	$dan=substr($instr,18,2);
	$ura1=substr($instr,21,2);
	$ura2=substr($instr,24,2); }

##3Prepisovanje le tistih členov matrike, ki sovečji od 0
$x=0;
   if ($jj>0) {foreach $RR  (@vrstica_radar) {if($RR>0)
	 {$RR=1*$RR;
        if($jj<10){$j_j="00".$jj;} 
	if(($jj<100)and($jj>=10)){$j_j="0".$jj;}
	if($x<10){$x_="00".$x;}
	if(($x<100)and($x>=10)){$x_="0".$x;}
        if ($jj>99) {$j_j=$jj;} if ($x>99) {$x_=$x;}
	print "$leto-$mesec-$dan $ura1:$ura2|$j_j$x_|$RR\n "; 
	print PISIV "$leto-$mesec-$dan $ura1:$ura2|$j_j$x_|$RR\n"; 
       
}
         
$x++; }
		}

#se pise v datoteko s simbolnim imenom PISIVC

if ($ii > 40) {$jj++;}
$ii++;
}

print "  I=$ii,  $jj \n";
close VHODRADAR;
close PISIV;
#se pise v datoteko s simbolnim imenom PISIVC
print "Podatki se tudi zapisejo v datoteko izhod1.txt, ki se dopolnjuje zaradi ukza >>\n";

