Thread die frage nach der ursache eines fehlers ... (5 answers)
Opened by jan999 at 2009-11-11 19:24

havi
 2009-11-11 20:51
#128137 #128137
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Habs dir mal ein wenig abgeändert...

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

use strict;
use warnings;

# Parser einbinden
my $osmolt_file = $ARGV[0];
my $result_file = $ARGV[1];

my $count_lines  = 0;
my $count_ctimes = 0;
ReadData();

# Filter anlegen
sub ReadData {

        #Filterdatei oeffnen    
        open(my $fh,  "<", $osmolt_file) or die( "$osmolt_file: $!" );
        open(my $out, ">", $result_file) or die ("Can't open html output file: ".$result_file);
        my $count = 0;
        my $desc  = "";

        #fuer jede Zeile
        while(my $zeile = <$fh>) {

                chomp $zeile;
                # Newlines loeschen
                $zeile =~ s/^\s+//;     # fuehrende Leerzeichen entfernen
                $zeile =~ s/\s+$//;     # nachfolgende Leerzeichen entfernen
                
                next if( /^#/ );   # Kommentare ueberspringen   
                next if( /^s*$/ ); # Leerzeilen ueberspringen
                
                if ($count != 0) {
                        #Zeile auftrennen       
                        my($point,$title,$attributes,$icon,$icon_size,$iconOffset) = split(/\t/, $zeile, 7 );
                
                        print $point." - ".$attributes." * ";
                        $count_lines++;
                        print $attributes;
                 
                        if (length $attributes > 0 ) {
                                $desc="<i>Es liegen Daten vor !!!!</i>";
                        }
                        else {
                                $desc="<i>keine Leerungszeiten vorliegend!</i>";
                        }
                        print $out join("\t", $point, $title, $desc, $icon, $icon_size, $iconOffset)."\n";              
                }
                else {              
                        # einfache Datenweitergabe der Kopfzeile
                        print $out $zeile."\n";
                }               
                # Anzahl der eingelesenen Zeilen
                $count++;

        }# end-while

        close($fh)  or die $!;
        close($out) or die $!;

} # while

Verwende bei open immer die 3. Argumenten schreibweise + immer lexikalische Variablen)
besser $zeile wie $_ (while usw.)
Ausgabe join...

Warum dein Skript nicht funktioniert... ? sind die Daten wirklich tab-getrennt ?? ;)
Last edited: 2009-11-11 20:52:59 +0100 (CET)

View full thread die frage nach der ursache eines fehlers ...