![]() |
|< 1 2 3 >| | ![]() |
21 Einträge, 3 Seiten |
tecker+2008-05-07 15:07:25--Wieso das? Der Reguläre Ausdruck verändert ja nicht den Wert der variabel.Naja dann bekomme ich ja den "zerflückten" Regex zurück. Daher hatte ich ja i$filename = $file; gemacht.
Ein print "$filename\n"; in der sub würde sowas wie "2008 03 10 15 46 03 031335"
liefern.
Struppi+2008-05-07 15:55:27--tecker+2008-05-07 15:07:25--Wieso das? Der Reguläre Ausdruck verändert ja nicht den Wert der variabel.Naja dann bekomme ich ja den "zerflückten" Regex zurück. Daher hatte ich ja i$filename = $file; gemacht.
Ein print "$filename\n"; in der sub würde sowas wie "2008 03 10 15 46 03 031335"
liefern.
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
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/perl
use strict;
use warnings;
use DirHandle;
use DBI;
##### Variablen #####
my $csv_dir = "csv_all";
##### Programm #####
my $dbh = DBI ->connect('DBI:mysql:table', 'user', 'pw', {PrintError => 1});
my $dh = DirHandle->new($csv_dir);
my @filelist = sort $dh->read();
foreach my $file (@filelist)
{
if($file =~ /extasc_cdr_(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})_(\d+).csv/)
{
my $id=$7;
unless( test_db($id,$dbh) ) { &update_db($cvs_dir,$file,$id,$dbh); }
else { print "-\n"; }
}
}
$dbh->disconnect;
close(DATEI);
##### Funktionen #####
sub test_db
{
my $id=shift(@_);
my $dbh=shift(@_);
my $sql_id_select = "SELECT * FROM csv_id WHERE csv_id=$id";
my $execute_select = $dbh->do($sql_id_select) or warn $dbh->errstr;
return 0 if($execute_select eq "0E0");
return 1;
}
sub update_db
{
my $cvs_dir=shift(@_);
my $file=shift(@_);
my $id=shift(@_);
my $dbh=shift(@_);
# CSV-ID in Datenbank speichern
my $sql_id_insert = "INSERT into csv_id VALUES('',$id)";
my $execute_insert = $dbh->do($sql_id_insert) or warn $dbh->errstr;
print "ID: $id - File: $file\n";
# Warum machst du das so?
#--> open(DATEI, "cat $csv_dir/$file |") or die "Fehler beim oeffnen von $file: $!\n";
# Öffne die Datei doch einfach so:
open(DATEI, '<', "$csv_dir/$file") or die "Fehler beim oeffnen von $file: $!\n";
while(<DATEI>)
{
chomp $_;
my @spalten = split (/\,/, $_);
# $a und $b sind reservierte Variablen,
# die von perl bei "sort" verwendet werden.
# Darum bitte nicht nutzen.
my $s_a = $spalten[0];
my $s_b = $spalten[1];
my $s_c = $spalten[2];
# kann man auch so schreiben:
# my ($s_a,$s_b,$s_c)=@spalten;
# ...
# Passiert hier noch was?
# ...
}
}
$file =~ /extasc_cdr_(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})_(\d+).csv/
if (not defined $s_a || $s_a eq ''){$s_a = 0;}
tecker+2008-05-09 10:53:19--
Die Überprüfung wollte ich mit
machen, klappt aber nicht immer, da er glaube kein eq Vergleich machen kann FALLS der Wert undef ist, oder??Code: (dl )if (not defined $s_a || $s_a eq ''){$s_a = 0;}
FIFO+2008-05-09 16:40:26--
$s_a ||= 0;
tecker+2008-05-09 10:53:19--Die Überprüfung wollte ich mit
machen, klappt aber nicht immer, da er glaube kein eq Vergleich machen kann FALLS der Wert undef ist, oder??Code: (dl )if (not defined $s_a || $s_a eq ''){$s_a = 0;}
if (not (defined $s_a || $s_a eq ''))
if (! defined $s_a || $s_a eq '')
if (not defined $s_a or $s_a eq '')
foobar(...) or die "..."
![]() |
|< 1 2 3 >| | ![]() |
21 Einträge, 3 Seiten |