Thread Begutachtung Script zum CSV vergleich (2 answers)
Opened by gnude at 2011-10-07 12:01

gnude
 2011-10-07 12:01
#152911 #152911
User since
2011-10-05
17 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,
ich taste mich immer noch langsam an die Problemlösung heran,
bezüglich des vorherigen Thread...
Hier nun das erste lauffähige Script,
welches mir die Daten aus zwei CSV brauchbar zusammenführt.
Von der direkten Anzapfung der Datenbank hab ich vorläufig abstand genommen, möchte es aber später auf jeden Fall einbauen.

Code: (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
63
64
65
66
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;
use Data::Dumper;






print "CSV Vergleich vom 07.10.2011 ver 0.0.1\n";


# Dieses Sub bekommt die Kundennummer übergeben und schaut ob es sie schon gibt.
# Wenn ja werden die Daten aus der .CSV Ausgegeben
sub nummerntest {
my $nummer = shift;
my $csv2 = Text::CSV->new ( { binary => 1 , sep_char => ";" } )
or die "File not found: ".Text::CSV->error_diag ();

open my $fh2, "<:encoding(ISO-8859-15)", "xt_customers.csv" or die "xt_customers.csv $!";
while ( my $row2 = $csv2->getline ( $fh2 ) ) {
if ($nummer == $row2->[0]) {
print join (';',$row2->[0],$row2->[1],$row2->[2],$row2->[3],$row2->[4],$row2->[5],$row2->[6],$row2->[7],$row2->[8],$row2->[9],$row2->[10],$row2->[11],$row2->[12],$row2->[13],$row2->[14],$row2->[15],$row2->[16],$row2->[17]) ;
print " -> aus der CSV Datei";
return("1");
}
else
{
}
}
return("0");
}



# Dieser Teil liest die Hauptdatei Zeilenweise ein, extrahiert die Kundennummer
# und übergibt sie zur Prüfung an die sub nummerntest
#
my $csv = Text::CSV->new ( { binary => 1 , sep_char => ";" } )
or die "File not found: ".Text::CSV->error_diag ();
open my $fh, "<:encoding(ISO-8859-15)", "xt_customers.txt" or die "xt_customers.txt $!";
while ( my $row = $csv->getline ( $fh ) ) {
my $ergebnis = nummerntest ("$row->[0]");
if ($ergebnis == "1")
{
}
else
{
#print $row->[0];
# my $test = join (';',$row->[0],$row->[1],$row->[2],$row->[3]) ;
print join (';',$row->[0],$row->[1],$row->[2],$row->[3],$row->[4],$row->[5],$row->[6],$row->[7],$row->[8],$row->[9],$row->[10],$row->[11],$row->[12],$row->[13],$row->[14],$row->[15],$row->[16],$row->[17]) ;
print " -> aus der TXT Datei"
}
print "\n";
}







$csv->eof or $csv->error_diag();
close $fh;
===========
Debian User
===========

View full thread Begutachtung Script zum CSV vergleich