Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8136[/thread]

csv-datei - erster datensatz: der 1. datensatz wird nicht übernommen:(



<< >> 4 Einträge, 1 Seite
matthi
 2006-07-04 16:35
#67833 #67833
User since
2006-03-18
1 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

Ich will eine CSV-Datei, die relativ groß ist, in mehrere kleine (Unterscheidung durch eine Nummer) aufteilen.
Das funktioniert wunderbar, jedoch wird der erste Datensatz der ersten Datei nicht übernommen.
mein Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
while(<DATEN>)
{
push(@zeilen, $_);
}

$i = 0;

for(@zeilen)
{
...
print FILE @zeilen[$i];
...
}


Was mache ich bitte falsch?

bin für jegliche Tipps dankbar.

lg Matthi
pq
 2006-07-04 16:46
#67834 #67834
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn du mit for() über @zeilen iterierst, wofür brauchst du dann das $i?
oder umgekehrt: wenn du das $i brauchst, solltest du über 0 .. $#zeilen iterieren.
der code, den du gepostet hast, läßt $i übrigens immer auf 0. du
bekommst immer datensatz 0.\n\n

<!--EDIT|pq|1152017217-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2006-07-04 16:48
#67835 #67835
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
my @zeilen = <DATEN>; # wozu while, wenn du eh alles in @zeilen haben willst?

for my $i (0 .. $#zeilen) {
 print FILE $zeilen[$i]\n";
 # mach was mit $i
}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Strat
 2006-07-04 19:22
#67836 #67836
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
eigentlich nichts, es sollte so funktionieren. hast du am anfang der csv-datei irgendwelche sonderzeichen? wird die erste zeile auch in der while(<DATEN>)-schleife nicht durchlaufen?

teste mal:
Code: (dl )
1
2
3
4
while( defined my $line = <DATEN> ) {
print "Zeile $.:\t$line\n";
push( @zeilen, $line );
} # while
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 4 Einträge, 1 Seite



View all threads created 2006-07-04 16:35.