Thread einlesen bearbeiten und ausgeben (72 answers)
Opened by Gast at 2008-08-21 12:29

Gast Gast
 2008-08-22 14:08
#113893 #113893
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.

View full thread einlesen bearbeiten und ausgeben