Thread Hashvalues nach Variablen sortieren: SCHWER (25 answers)
Opened by Gast at 2004-09-01 16:49

DayGlo
 2004-09-01 18:16
#49757 #49757
User since
2004-09-01
5 Artikel
BenutzerIn
[default_avatar]
Sorry, es fehlten natürlich noch die zwei Subroutinen, die die Seite schließlich machen:

Code: (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
sub print_text_html {                                   # Subroutine, die die Tabelle definiert

 
   my @rows = ();                                      # leere Spalten
   my($am,$ziel,$von,$gate,$arrival,$depart)=@_;       # Aufruf der daten-Subroutine, hier werden die Hasreferenzen in ein leeres Array gepackt


   my ($uhrzeit,$datum) = &datum_uhrzeit();            # Aufruf der Datum_uhrzeit Subroutine
   my $h = td ({-bgcolor=>'#66FFFF'},$uhrzeit);        # die aktuelle Uhrzeit wird einer Zabellenspalte zugewiesen

   my %status = &status(@_); #HJE
#    my $i = ();
#HJE    foreach my $status (@status) {                        # der Status (Gestartet, Boarding, Check in) aus der gleichnamigen Subroutine wird aufgerufen
#HJE    $i = td ({-bgcolor=>'#66FFFF'},$status);                # der Status wird einer Tabellenspalte zugewiesen
#HJE    };        
#HJE Kommentar: der jeweiligen Flugnummer muss der entsprechende Status $i zugeordnet werden
#HJE und nicht alllen Fluegen der in der obigen foreach-Schleife zuletzt berechnete Status
#HJE Daher muss die subroutine status ein Hash zurueckgeben, s.o.,
#HJE und "my $i =  td  ..... " muss in die folgende Schleife
  # (sort { "$Stunde:$Minute:$Monatstag:$Monat:$Jahr" <=> ) keys %$am )
   
   foreach my $flugnr ( keys %$am) {         # Schleife, um an die Werte der Hash-Referenzen heran zu kommen und damit wirklich alle Daten erfasst werden
#my @sort = &sort_nach_datum(@_);    
my $a = td({-bgcolor=>'#66FFFF'},$am->{$flugnr});        # Den einzelnen Datenwerten werden Tabellenspalten zugewiesen.  
my $b = td({-bgcolor=>'#66FFFF'},$flugnr);
my $c = td({-bgcolor=>'#66FFFF'},$ziel->{$flugnr});
my $d = td({-bgcolor=>'#66FFFF'},$von->{$flugnr});
my $e = td({-bgcolor=>'#66FFFF'},$gate->{$flugnr});
my $f = td({-bgcolor=>'#66FFFF'},$arrival->{$flugnr});
my $g = td({-bgcolor=>'#66FFFF'},$depart->{$flugnr});
my $i = td({-bgcolor=>'#66FFFF'},$status{$flugnr}); #HJE
           push(@rows,Tr($a,"\n",$b,"\n",$c,"\n",$d, "\n",$e, "\n",$f, "\n",$g, "\n",$h, "\n",$i));  #Die einzelnen Tabbellenspalten werden an die Zeilen                                                                                                      gepackt
           };
 
    return (@rows);                       # die Subroutine gibt Die Zeilen der Tabbelle zurück
};


sub page {                                             # diese Subrotuine erzeugt die eigentliche HTML-Seite

   my ($uhrzeit,$datum) = datum_uhrzeit();            # man braucht das aktuelle Datum und die reale Uhrzeit

   my ($header,@content) = @_;                         #hier wird die Seite geschrieben
   Delete_all();
   return
header,
start_html($header),
       $header = h1({-align=>'center'}, font({-color=>'#3333FF'},'Flugplan Bielefeld')),
h2 ({-align=>'center'}, $datum), hr, br, br, br, h3({-align=>'center'}, 'Abflüge'),
       table({-border=>1,-width=>'90%',-align=>'center'}, th ('Am'), th('Flug'), th('Nach'), th('Von'), th('Gate'),
             th('Ankuftzeit'), th('Abflugzeit'), th ('aktuelle Zeit'), th('Status'),
             @content),
end_html;
};


edit pq: code-tags spendiert\n\n

<!--EDIT|pq|1094048854-->

View full thread Hashvalues nach Variablen sortieren: SCHWER