Thread CSV Vergleich
(21 answers)
Opened by gnude at 2011-10-25 13:18
Script angepasst,
und "use strict" auskommentiert. Jetzt läuft es durch. Aber es muss in den Anforderungen noch angepasst werden.... Im Moment sieht es so aus: 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 #!/usr/bin/perl #use strict; use warnings; use Text::CSV; my %datei = ( shop => 'xt_customers.csv', wawi => 'xt_customers.txt', neu => 'all_customers.csv', ); sub load_cache { my $file = shift; my %cache; my $csv = Text::CSV->new ( { binary => 1 , sep_char => ";" } ) or die "File not found: ".Text::CSV->error_diag (); my $row; open my $fh, "<:encoding(iso-8859-1)", $file or die $file." $!"; while ( $row = $csv->getline ( $fh ) and ref $row eq 'ARRAY') { $cache{'ID'}{ $row->[0] } = $cache{'Mail'}{ $row->[6] } = $row; #$cache{'ID'}{@$row[0]} = $cache{'Mail'}{@$row[6]} = $row; } return \%cache; } # lade beide dateien my $cache_shop = load_cache( $datei{'shop'} ); my $cache_wawi = load_cache( $datei{'wawi'} ); my $cache_neu = (load_cache $datei{shop} )->{ID}; # kopiere alle zeilen aus wawi in neuen shop deren id oder mail nicht im shop ist for my $ID ( keys %{ $cache_wawi{'ID'} }) { $cache_neu{ $ID } = $cache_wawi{'ID'}{ $ID } if not exists $cache_shop{'ID'}{ $ID } and not exists $cache_shop{'Mail'}{ $cache_wawi{'ID'}{$ID}[6] }; } # gib die neue shopliste aus for my $row ( values %$cache_neu ) { print join(';', @$row[0..17]);print"\n" } modedit Editiert von pq: perl-tags hinzugefügt - BEIM NÄCHSTEN MAL BITTE SELBER MACHEN Last edited: 2011-11-03 17:05:27 +0100 (CET) ===========
Debian User =========== |