#!/usr/bin/perl use warnings;; use strict; my %hash = ( AL => '052001', AB => '052003', HX => '052363', BRE => '052324', ); # Eingabedatei öffnen # Ausgabedatei-normalfälle öffnen # Ausgabedatei-sonderfälle öffnen open(my $eingabeDatei, "<$ARGV[0]") or die $!; open(my $ausgabeDatei, ">$ARGV[1]") or die $!; open(my $fehlerDatei, ">$ARGV[2]") or die $!; #schleife while(my $zeile = <$eingabeDatei>){ # Eingabedatei zeilenweise lesen chomp $zeile; my $org=$zeile; my @array=split(/ /, $zeile); # $array[0]: Gemarkungsbezeichnung (z.B. AL) # $array[1]: "FL" # $array[2]: Flur nummer (z.B. 14) # $array[3]: "NR" # $array[4]: Flurstücksnummer (z.B. 42 oder 260/285) my $Gemarkungsnummer=$hash{$array[0]}; my $Flurnummer=$array[2]; my $Flurstuecksnummer=$array[4]; # aufsplitten in Zaehler und Nenner my ($Flurstuecksnummerzaehler,$Flurstuecksnummernenner)=split (/\//,$Flurstuecksnummer); # aufsplitten in Zaehler und Nenner #schaut ob im string ein "+" vorkommt, wenn ja wird das "+" durch "+0" getauscht if ($array[2] =~ "\\+"){ $array[2] =~ s/\+/\+0/; } #abfrage ob im String "NR" vorkommt if($array[4] != "NR") { # print "$_ $hash{$array[0]}-0$array[2]-$nullen$array[4]/000.00 $array[5] $array[6] $array[7]\n"; printf $ausgabeDatei "%s\t%s-%03u-%05u/%03u.00\t \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, $Flurstuecksnummernenner; } else { #print "$_ $hash{$array[0]}-0$array[2]\n"; printf $fehlerDatei "%s\t%s-%03u \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, } #print "$_\n"; } close($eingabeDatei) or die $!; close($ausgabeDatei) or die $!; close($fehlerDatei) or die $!;