Leser: 6
![]() |
|< 1 2 3 4 5 6 ... 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
#!/usr/bin/perl
use warnings;
use strict;
open(my $fhListe, "<Liste.txt") or die $!;
my %pnr;
while(my $zeile = <$fhListe>) {
chomp $zeile;
my @felder = ();
@felder = split(/ /, $zeile); # teilt deine Liste nach Blank und speichert es in @felder
$pnr{$felder[0]} = $felder[1]; # merkt sich die Daten aus deiner Liste...
} # while
close($fhListe) or die $!;
##############################
open(my $fhDatei, "<Datei.txt") or die $!;
open(my $fhErgebnis, ">Ergebnis.txt") or die $!;
while(my $zeile = <$fhDatei>) {
chomp $zeile;
my @satz = ();
@satz = split(/ /, $zeile); # teilt deine Datei nach Blank und speichert es in @satz
my $ergListe = "!LEER!"; # setzt die Nummer fuer den Ort erstmal auf !LEER!
$ergListe = $pnr{$satz[0]} if defined $pnr{$satz[0]}; # wenn Ort gefunden, wird die Nr gesetzt
# Ausgabe:Nummer deiner Liste-Zahl 3stellig mit 0 davor - Zahl 5stellig mit 0 davor /fixer Wert
print $fhErgebnis $ergListe."-".sprintf("%03d", $satz[2])."-".sprintf("%05d", $satz[4])."/000.00\n";
} # while
close($fhDatei) or die $!;
close($fhErgebnis) or die $!;
print "Fertig.\n";
1;
Gast+2008-08-21 13:41:41--ok jetzt hab ich es verstanden.. aber ich soll jetzt die nummern für die orte in hash machen.. weil keine extra datei seien soll.. wie geht das ganze dann?
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
#!/usr/bin/perl
use warnings;
use strict;
my %pnr;
$pnr{AB} = "052001";
$pnr{AC} = "052025";
$pnr{AD} = "052030";
open(my $fhDatei, "<Datei.txt") or die $!;
open(my $fhErgebnis, ">Ergebnis.txt") or die $!;
while(my $zeile = <$fhDatei>) {
chomp $zeile;
my @satz = ();
@satz = split(/ /, $zeile);
my $ergListe = "!LEER!";
$ergListe = $pnr{$satz[0]} if defined $pnr{$satz[0]};
print $fhErgebnis $ergListe."-".sprintf("%03d", $satz[2])."-".sprintf("%05d", $satz[4])."/000.00\n";
} # while
close($fhDatei) or die $!;
close($fhErgebnis) or die $!;
print "Fertig.\n";
1;
Gast+2008-08-21 13:56:11--hmm also ich habe das jetzt versucht.. habe alle sachen so umbenannt wie es bei mir heißt.. weil ich die datei jetzt testdaten.txt genannt habe..
mehr müsste ich doch nicht ändern und es müsste funktionieren oder?
macht es nämlich nicht. deshalb die frage muss ich sonst noch was ändern?
open(my $fhDatei, "<c:\\daten\\Datei.txt") or die $!;
Gast+2008-08-21 14:08:40--ja habe ich in dem verzeichniss drin
Gast+2008-08-21 14:27:28--bei mir stürzt dabei alles ab so das ich den pc neu anmachen muss^^
mit meinem versuch bin ich jetzt so weit
$hash{AL}="052001";
$hash{AB}="052003";
while(<>){
chop;
@array=split;
$org=$_;
print "Drittes Element: $hash{$array[0]} - 0$array[2] - 000$array[4].00\n";
#print "$_\n";
}
es gibt mir alles richtig aus. nur kommen jetzt ein paar sonderfälle dazu. zumbeispiel ist teilweise die letzte nummer nciht vorhanden.. und in díesem fall soll es da dann auch nichts anzeigen.
Bsp:
AB FL 17+18
soll anzeigen 052001-017+018
bei mir zeigt es in dem fall jetzt aber 052001-017+18-000.00 an
was muss ich machen.
danke für jede hilfe
![]() |
|< 1 2 3 4 5 6 ... 8 >| | ![]() |
73 Einträge, 8 Seiten |