#!/usr/bin/perl use strict; use warnings; # Parser einbinden my $osmolt_file = $ARGV[0]; my $result_file = "newfile.txt"; my $count_postboxes = 0; my $count_ctimes = 0; InitFilter(); # Filter anlegen sub InitFilter { #Filterdatei oeffnen open( FH, $osmolt_file ) or die( "$osmolt_file: $!" ); open (my $out, ">", $result_file) || die ("Can't open html output file: ".$result_file) ; my $count = 0; my $desc = ""; #fuer jede Zeile while( ) { chomp; # Newlines loeschen s/^\s+//; # fuehrende Leerzeichen entfernen s/\s+$//; # nachfolgende Leerzeichen entfernen next if( /^#/ ); # Kommentare ueberspringen next if( /^s*$/ ); # Leerzeilen ueberspringen #Zeile auftrennen my($point,$title,$collection_times,$icon,$icon_size,$iconOffset) = split( /\t/, $_, 7 ); $count_postboxes##; if (length $collection_times > 0 ) { my $code = ""; $icon = "postbox_collection.png"; CreateCollectionTimeTable($collection_times); $desc=$collection_times; $count_ctimes++; }else{ $desc="keine Leerungszeiten vorliegend!"; } print $out $point."\t".$title."\t".$desc."\t".$icon."\t".$icon_size."\t".$iconOffset."\n"; #Anzahl der eingelesenen Zeilen $count++; } close( FH ); close $out; print $count." Zeilen bearbeitet"; print $count_postboxes." Postkaesten"; my $prozent_collection = 100 / $count_postboxes * $collection_times; print $collection_times." mit Leerungszeiten (".$prozent_collection.")"; } #erstellen der Tabelle mit den Leerungszeiten sub CreateCollectionTimeTable { my $ctimes = shift ; my(@days) = split( /;/, $ctimes ); foreach my $day (@days){ $_ = $day; s/^\s+//; # fuehrende Leerzeichen entfernen s/\s+$//; # nachfolgende Leerzeichen entfernen my($dayname,$daytime) = split( / /, $_ ); $code .= ""; print "|".$dayname."| - |".$daytime."|\n"; $code .= ""; } #Tabellen-Abschluss $code .= "
".$dayname."".$daytime."
"; print "------------------------\n"; print $code."\n";