my $hdrFlg = 1;
my $n = 0;
my ($dt, $tm, $prj, $id) = ();

while( !eof( STDIN ) ) {
    my $l = <STDIN>;
    my ($idx, $val);
    chomp $l;
    $n++;
    
    if( $hdrFlg ) {
        if( ($idx, $val) = $l =~ /^\s* (\d+) \s+ (-? \d+) \s* $/x ) {
            # zpracovani hlavicky konci, toto uz je normalni par index/hodnota
            # (zustalo to v ($idx, $val), pak se to vypise)
            # vysypat novou hlavicku a shodit priznak
            $hdrFlg = 0;
            $dt = '01.01.15' unless $dt;
            $tm = '00:00' unless $tm;
            $prj = 'PROJECT_X' unless $prj;
            $id = 'Project_X_s_ID' unless $id;
            print <<_EOT
###[MainHeading]
FileType\t=\tPreselection data
Saved\t\t=\t$dt $tm
Version\t\t=\t1.0
ProjectName\t=\t$prj
###[MainHeading]

###[TypeHeading]
MachineType\t=\tWinder
MachineName\t=\tWickler
ValueNr\t\t=\t1050
DataType\t=\tPreselection data
TypeName\t=\t$id
TargetNr\t=\t1
###[TypeHeading]

###[Value]
_EOT
;
            # ($dt, $tm, $prj, $id) = ();
            }
        else {
            # Nacitani dat ze stare hlavicky
            # STA_PF1
            # 12569-2CIV-P35-OCKO-0,2GR2
            # 02-06-2015
            # 09:56:53
            if( $l =~ /^\s* (\d{1,2}) : (\d{1,2}) : \d{2} \s*$/x ) {
                $tm = sprintf '%02u:%02u', $1, $2;
                }
            elsif( $l =~ /^\s* (\d{1,2}) - (\d{1,2}) - \d{2}? (\d{2}) \s*$/x ) {
                $dt = sprintf '%02u.%02u.%02u', $2, $1, $3;
                }
            elsif( !$prj ) {
                $prj = $l;
                }
            elsif( !$id ) {
                $id = $l;
                }
            else {
                # Ops, neco je blbe
                print "Neznama struktura hlavicky \"$l\"\n";
                print STDERR "Neznama struktura hlavicky, radek $n: \"$l\"\n";
                exit( 1 );
                }
            # pokracujeme na dalsi radek
            next;
            }
        }
    elsif( ($idx, $val) = $l =~ /^\s* (\d+) \s+ (-? \d+) \s* $/x ) {
        # mame par idx/val, v zapeti ho vypiseme
        }
    else {
        # konec
        last;
        }
    # [0000] [         0][%.0fd][1,00]
    printf "[%04u] [%10d][%%.0fd][1,00]\n", $idx, $val;
    }

# zavrit sekci value a pridat pevny epilog
print <<_EOT
###[Value]

###[AdditionalInfo]
[01][0] [10900]\\t
[02][0] [10901]\\t0,236   [350 zavitu]
[03][0] [10902]\\t170-250
[04][0] [10903]\\t20
[05][0] [10904]\\t1 - 4 - 6 - 8   Sablona 7 mm Real 6,5 mm
[06][0] [10905]\\t118[-+6]
[07][0] [10906] 1\\t
[08][0] [10906] 2\\t
[09][0] [10906] 3\\t
###[AdditionalInfo]

_EOT
;
