Thread CSV umwandeln (38 answers)
Opened by lukastonner at 2010-06-18 16:31

lukastonner
 2010-06-21 15:29
#138612 #138612
User since
2010-02-07
47 Artikel
BenutzerIn
[default_avatar]
Vielen Dank, hab es nach deiner Methode versucht, leider sehen die Dateien genauso aus wie die Orginaldateien.

("12345,2010/06/21 11:00:00,51,-10,15")-> Orginaldaten, so sehen sie auch immer noch aus...
("12345 2010-06-21T11:00:00 51 -10 15")-> so sollten Sie aussehen


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
#!/usr/bin/perl


use strict;
use warnings;
use Net::FTP;
use lib "/home/bm4381/perlmodule/";
use Text::CSV;

#######ftp Zugangsdaten und Zielverzeichnis festlegen########

my $host = "ftp.1234.de";
my $user = "ich";
my $pass = "1234";
my $dest_dir = "/home/daten/test/";

my $ftp = "";
my @dir = "";
my $filename = "";

my $csv = "";

my $in_sep=';';
my $out_sep="\t";


$ftp = Net::FTP->new($host, Debug => 0)
or die "Es konnte keine Verbindung zu $host: $@ aufgebaut werden";

$ftp->login($user, $pass)
or die("Login schlug fehl: ".$ftp->message);

$ftp->cwd("/data/outgoing/")
or die "Ziel-Verzeichnis nicht gefunden", $ftp->message;


foreach my $filename ($ftp->ls('*.*')){


my $ouput_filename="$dest_dir$filename";

# Datei setzen, die gelesen werden soll
if(my $data=$ftp->retr($filename)){

my $csv=Text::CSV->new({ sep_char => $in_sep });
my $out_csv=Text::CSV->new({ sep_char => $out_sep });

open my $ofh, '>', $ouput_filename
or die "Could not open $filename: $!";

while ( my $columns = $csv->getline( $data ) )
{
$out_csv->combine(@$columns);
print $ofh $out_csv->string()."\n";
}
# Verbindung schließen
$data->close();

close $ofh;
}
}
print "\n Download beendet \n";
$ftp->quit();

View full thread CSV umwandeln