Thread zwei fragen zu fehlern - datei schreiben und ???
(4 answers)
Opened by jan99 at 2009-02-19 09:38 Code (perl): (dl
)
for ($j=2;$j<=$countcol;$j++){ Solche Schleifen sind immer Verdächtig. Einmal sind diese so in Perl nicht üblich, da Perl bessere Möglichkeiten bietet um auf alle Elemente eines Array zu zugreifen. Dann ist in so einem Fall <= meistens falsch. Ich würde die Schleife in etwa so machen (ungetestet): 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 my @colnames = qw/name megalit_type moved place village historic /; my $err_msg = ''; while(my $dataline=<$fh>){ chomp($dataline); $line_count++; #aufsplitten der csv-datei my @value = split(/;/,$dataline); #create node-data my $lat = shift @value; my $log = shift @value; #lat and log define? if (defined $lat && defined $log){ #output node-header $object_id--; print FILEHANDLE sprintf " <node id='%s' action='modify' visible='true' lat='%s' lon='%s'>\n", $object_id, $lat, $log; # get column-values and set to node foreach my $col(@colnames) { my $value = shift @values; next if !defined $value || length $value < 1; print FILEHANDLE sprintf "<tag k='%s' v='%s' />\n", $col, $value; } $point_count++; print FILEHANDLE " </node>\n"; } else { $err_msg .= "missing lat- and/or log-value in line $line_count\n"; }#endif - && }# end-while |