Thread Brauche Hilfe bei Scripterstellung zur CSV Bearbeitung (11 answers)
Opened by gnude at 2011-10-05 14:49

gnude
 2011-10-05 14:49
#152865 #152865
User since
2011-10-05
17 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich benötige (viel) Hilfe beim Erstellen eines Scriptes.

Es geht um Datenabgleich zwischen einer Warenwirtschaft und einem Onlineshop.
Die von dem Hersteller mitgelieferten Schnittellen ermöglichen nur das Übernehmen von Bestellungen aus dem Shop in die Warenwirtschaft und das
Anlegen eines Kunden, wenn er noch nicht vorhanden ist.
Ich möchte nun aber die Kundendaten aus der Warenwirtschaft in den Shop übertragen.
Dazu erzeuge ich zwei Dateien in der Warenwirtschaft, eine mit den Kundennummern und Einstellungen, eine mit Kundennummern und Adressen.
Die sind vom Aufbau her schon passent mit der Tabelle die in der MySQL Datenbank im Shop steht.
Nun erzeuge ich die gleichen Dateien aus der SQL Datenbank im Shop. So das ich nun 2x Kundennummen habe (1x Shop, 1x Warenwirtschaft) und
2x Kundenadressen (1x Shop, 1x Warenwirtschaft).
Jetzt geht es an den ablgeich. Kunden werden in der Warenwirtschaft erfasst und kommen so neu dazu.
Die müssen im Shop eingepflegt werden.
Kunden haben sich im Shop angemeldet, aber noch nichts gekauft, und sind so nicht in der Warenwirtschaft. Sie müssen also im Shop verbleiben ohne überschrieben zu werden.
Dann gibt es Kunden, die haben etwas BEstellt und über die Bestellung wurde eine Kundennummer in der Warenwirtschaft angelegt.
Die müssen dann übernommen werden, allerdings muss das Kundenkennwort was sie sich ausgesucht haben übernommen werden.
Dann kann der "alte " Datensatz im Shop gelöscht und der neue aus der Warenwirtschaft übernommen werden.

Das alles möchte ich in den CSV Dateien wiederspiegeln, so das ich die Dateien vom Shop abzapfe, dann aus der Warenwirtschaft. Diese zusammenführe zu zwei neuen Dateien und
diese dann direkt in die MySQL Datenbank hochlade.

Ich habe versucht so gut es geht mich durch zu kämpfen und dieses Script erzeugt, welches wohl den Inhalt der beiden .csv Dateien in einem Array ablegt. Nun währe für mich der nächste Schritt, das ich diese Dateien vergleiche um aus dem Ergebnis dann eine neue Datei zu erstellen.

Bin für jede Hilfe, Tipp oder Hinweis dankbar!
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
#!/usr/bin/perl 
use strict;
use warnings;
use diagnostics;
use Text::CSV_XS;
my $file = 'xt_customers_addresses.csv'; #csv file name
my @rows; # array that will store csv values
my $csv = Text::CSV_XS->new ({ binary => 1 }) or
die "Cannot use CSV: ".Text::CSV->error_diag ();
#open file
open my $FH, "<:encoding(ISO-8859-15)", "$file" or die "$file: $!";
#skip first n (10 in this case) lines
<$FH> for 1 .. 10;
#read file in while loop
# my $i = 1;
while (my $row = $csv->getline ($FH) ) {
# if ($i > 1)
{push @rows, $row;}
# $i++;
}
$csv->eof or $csv->error_diag ();
#close file
close $FH;
#print contents of @rows array
for my $print_rows (@rows)
{
print "@$print_rows\n";
}

# Working with file2

my $file = 'xt_customers_addresses.csv'; #csv file name
my @rows; # array that will store csv values
my $csv = Text::CSV_XS->new ({ binary => 1 }) or
die "Cannot use CSV: ".Text::CSV->error_diag ();
my $file2 = 'xt_customers_addresses.txt'; #csv file name
my @rows2; # array that will store csv values

my $csv2 = Text::CSV_XS->new ({ binary => 1 }) or
die "Cannot use CSV: ".Text::CSV->error_diag ();
#open file
open my $FH2, "<:encoding(ISO-8859-15)", "$file2" or die "$file2: $!";
#skip first n (10 in this case) lines
<$FH2> for 1 .. 10;
#read file in while loop
# my $i = 1;
while (my $row2 = $csv2->getline ($FH2) ) {
# if ($i > 1)
{push @rows2, $row2;}
# $i++;
}
$csv2->eof or $csv2->error_diag ();

#close file
close $FH2;

#print contents of @rows array
for my $print_rows2 (@rows2)
{
print "@$print_rows2\n";
}

Last edited: 2011-10-05 14:51:03 +0200 (CEST)
===========
Debian User
===========

View full thread Brauche Hilfe bei Scripterstellung zur CSV Bearbeitung