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

Gast Gast
 2008-08-22 12:17
#113885 #113885
So würde ich es schreiben:

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
#! 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);

View full thread einlesen bearbeiten und ausgeben