Hilfe! Termine Datei auslesen und ausgeben
Mario
- cgi
0 Michael Schröpl0 Mario
0 Mario
Ich habe ein problem...
script was ich habe liest die termine datei und gibt diese dann aus
es werden aber alle termine ausgegeben was ich nicht möchte.
ich möchte das nur (einstellbar auf anzahl der anzuzeigenden termine) z.B. ein termin augegeben wird ..
ich finde die lösung nicht!! könnt ihr mir helfen???
script:
#!/usr/bin/perl
#use CGI::Carp qw(fatalsToBrowser);
$termine= 4; # Anzahl der anzuzeigenden Termine
$faktor= int (0/$termine);
($sek, $min, $std, $tag, $mon, $jhr, $wtg, $jtg, $isdst)=localtime(time);
$mon ++;
$jhr=$jhr+1900;
&Wochentag;
$datum=sprintf('%02d.%02d.%04d',$tag, $mon, $jhr);
if(open(IN, 'calendar_events.txt')){
@liste=<IN>;
close(IN);
}
else{die;}
foreach $zeile (@liste) {
($id,$xdatestamp,$label,$desc) = split(/|/,$zeile,4);
$xjhr=substr($xdatestamp,0,4);
$xmon=substr($xdatestamp,4,2);
$xtag=substr($xdatestamp,6,2);
if ($xjhr eq "0000"){
$xdatestamp=$jhr.$xmon.$xtag;
}
$liste[$i]=$xdatestamp.'|'.$label.'|'.$desc;
$i++;
}
@liste = sort {$a cmp $b} @liste;
foreach(@liste) {
chomp;
next unless /^\d/;
($xdatestamp,$label,$desc) = split(/|/,$_,3);
$xjhr=substr($xdatestamp,0,4);
$xmon=substr($xdatestamp,4,2);
$xtag=substr($xdatestamp,6,2);
if ((($xjhr*365)+($xmon*30)+$xtag) >= (($jhr*365)+($mon*30)+$tag)) {
$anz++;
if (($xtag==$tag) & ($xmon==$mon) & ($xjhr==$jhr)){
$farbe="yellow";
}
else{
$farbe="#000000";
}
$tab=$tab.'<tr><td valign="top" bgcolor="#86B580" height="1"><b><font face="Arial" size="2" color="'.$farbe.'">'."$xtag.$xmon.$xjhr</b> -- $label</font></td></tr>";
$tab=$tab.'<tr><td valign="top" bgcolor="#A7C8A2"><font face="Arial" style="margin-top: 5; margin-bottom: 20" size="2">'.$desc.'<br></font><br></td></tr>';
}
}
$height=int($faktor*$anz);
$tab='<table border="0" cellpadding="0" cellspacing="0" valign="top" bgcolor="#A7C8A2" bordercolor="#000000" bordercolordark="#000000" height="95%" width="100%">'.$tab;
if ($anz==0) {
$tab='<table border="0" cellpadding="0" cellspacing="0" valign="top" bgcolor="#A7C8A2" bordercolor="#000000" bordercolordark="#000000" height="95%" width="100%"><font face="Arial" size="2" color="'.$farbe.'"><center>keine Termine vorhanden</center></font>';
}
print <<Kopf1;
Content-type: text/html
$tab
</table>
Kopf1
##################################################################################
##################################################################################
sub datum
DIE UNTERPROGRAMME HABE ICH UND ES FUNKTIONIERT ALLES
Hi Mario,
es werden aber alle termine ausgegeben was ich nicht möchte.
dann darfst Du nicht mit "foreach" alle Termine gleich behandeln:
--- Kalender Datei ausgeben --------------------------
foreach(@liste) {
Viele Grüße
Michael
Hi Michael
dann darfst Du nicht mit "foreach" alle Termine gleich behandeln:
in dem script kann man die anzahl der anzuzeigende termine einstellen
$termine= 4; # Anzahl der anzuzeigenden Termine
aber ich finde keine zuordnung zu $termine
Wie, was soll ich machen mit
foreach(@liste) {
, kann mir das jemmand erklären