Leser: 6
![]() |
|< 1 ... 3 4 5 6 7 8 >| | ![]() |
73 Einträge, 8 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#! usr/bin/perl use strict; use warnings; my %hash; $hash{AL}="052001"; $hash{AB}="052003"; $hash{HX}="052363"; $hash{BRE}="052324"; if(@ARGV<2) { die "Bitte wie folgt aufrufen:\n $0 <Eingabedatei> <Ausgebedatei>\n"; } my $eingabe_datei=$ARGV[0]; my $ausgabe_datei=$ARGV[1]; # Eingabedatei öffnen open( my $rein, '<', $eingebe_datei) or die "Konnte $eingabe_datei nicht oeffnen ($!)\n"; # Ausgabedatei öffnen open( my $raus, '>', $ausgabe_datei) or die "Konnte $ausgabe_datei nicht oeffnen ($!)\n"; #schleife while(my $zeile= <$rein>) { # Eingabedatei zeilenweise lesen # \n entfernen # (chop entfernt das letzte Zeichen, # das muss aber nicht \n sein...) chomp($zeile); my @array=split($zeile); # $array[0]: Gemarkungsbezeichnung # $array[1]: "FL" # $array[2]: Flur nummer # $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 Zaehler und Nenner #tausche "+" durch "+0" $array[2] =~ s/\+/+0/g; #abfrage ob im String "NR" vorkommt if($array[4] ne "NR") { # print "$zeile $hash{$array[0]}-0$array[2]-$nullen$array[4]/000.00 $array[5] $array[6] $array[7]\n"; printf $raus "%s\t%s-%03u-%05u/%03u.00\t \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, $Flurstuecksnummernenner; } else { #print "$zeile $hash{$array[0]}-0$array[2]\n"; printf $raus "%s\t%s-%03u \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, } #print "$zeile\n"; } close($raus); close($rein);
renee+2008-08-22 09:04:07--havi: Du öffnest die Datei zum Lesen, nicht zum Schreiben...
Gast+2008-08-22 09:29:25--open(my $fhFertig, "<Fertig.txt") or die $!;
while(<>) {
print $fhFertig $_;
} # while
close($fhFertig) or die $!;
[/perl]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
$hash{AL}="052001"; $hash{AB}="052003"; $hash{HX}="052363"; $hash{BRE}="052324"; #Um switch anweisung zu benutzen use Switch; # Eingabedatei öffnen # Ausgabedatei-normalfälle öffnen # Ausgabedatei-sonderfälle öffnen #schleife while(<>){ # Eingabedatei zeilenweise lesen chop; $org=$_; @array=split; # $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) $Gemarkungsnummer=$hash{$array[0]}; $Flurnummer=$array[2]; $Flurstuecksnummer=$array[4]; # aufsplitten in Zaehler und Nenner ($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 "%s\t%s-%03u-%05u/%03u.00\t \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, $Flurstuecksnummernenner; } else { #print "$_ $hash{$array[0]}-0$array[2]\n"; printf "%s\t%s-%03u \n", $org, $Gemarkungsnummer, $Flurnummer, $Flurstuecksnummerzaehler, } #print "$_\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
$hash{AL}="052001"; $hash{AB}="052003"; $hash{HX}="052363"; $hash{BRE}="052324"; #Um switch anweisung zu benutzen #use Switch; # Eingabedatei öffnen # Ausgabedatei-normalfälle öffnen # Ausgabedatei-sonderfälle öffnen open(EINGABEDATEI,"$ARGV[0]") open(AUSGABEDATEI,"$ARGV[1]") open(FEHLERDATEI,"$ARGV[2]") #schleife while(EINGABEDATEI){ # Eingabedatei zeilenweise lesen chop; $org=$_; @array=split; # $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) $Gemarkungsnummer=$hash{$array[0]}; $Flurnummer=$array[2]; $Flurstuecksnummer=$array[4]; # aufsplitten in Zaehler und Nenner ($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);
1 2 3 4
$hash{AL}="052001"; $hash{AB}="052003"; $hash{HX}="052363"; $hash{BRE}="052324";
1 2 3 4 5 6
my %hash = ( AL => '052001', AB => '052003', HX => '052363', BRE => '052324', );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#!/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 $!;
Gast+2008-08-22 12:08:27--Hab dir dein Skript mal angepasst!
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62#!/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 $!;
... und bitte auch immer alle Dateien auch wieder schliessen.
![]() |
|< 1 ... 3 4 5 6 7 8 >| | ![]() |
73 Einträge, 8 Seiten |