Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Sonstige Web-Programmiersprachen » Datei auslesen und nur ein teil ausgeben... Antworten
Datei auslesen und nur ein teil ausgeben

Cosy
Pixelschubser


Beiträge: 1


hallo leute... ich habe ein problem..
ich habe hier ein script der die datei termine.txt ausliest und auf der seite in der tabelle ausgibt... aber es werden alle termine ausgegeben was ich nicht will.
ich will das ich es einstellen kann wie viele termine ausgegeben werden.
die termine datei sieht so aus:

1: 
2: 
3: 
4: 
5:
#id|datestamp|label|description
#id|datestamp|label|description
#id|datestamp|label|description
.
.


und script sieht so aus:

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: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113: 
114: 
115: 
116: 
117: 
118:
#use CGI::Carp qw(fatalsToBrowser);

$termine=2;		# Anzahl der anzuzeigenden Termine
$faktor=int(95/$termine);
# --- Datum ermitteln ----------------------------------
($sek, $min, $std, $tag, $mon, $jhr, $wtg, $jtg, $isdst)=localtime(time);
$mon ++;
$jhr=$jhr+1900;
&Wochentag;
$datum=sprintf('%02d.%02d.%04d',$tag, $mon, $jhr);

# --- Kalender Datei lesen -----------------------------
if(open(IN, 'termine.txt')){
	@liste=<IN>;
	close(IN);
}
else{die;}

# --- Kalender Datei vorbereiten -----------------------
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++;
}


# --- Kalender Datei sortieren -------------------------
@liste = sort {$a cmp $b} @liste;

# --- Kalender Datei ausgeben --------------------------
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" background="tile_msg.gif" height="1"><b><font face="Arial" size="2" color="'.$farbe.'">'."$xtag.$xmon.$xjhr</b>  --  $label</font></td></tr>";
		$tab=$tab.'<tr><td valign="center" bgcolor="#A7C8A2"><font face="Arial" size="2"><p style="margin-top: 5; margin-bottom: 5">'.$desc.'</font><br></td></tr>';
	}

}
$height=int($faktor*$anz);
$tab='<table border="1" cellpadding="0" cellspacing="0" valign="top" bgcolor="#A7C8A2" bordercolor="#000000" bordercolordark="#D1EFD1" height="1" width="100%"><tr><td bgcolor="#86B580" background="header_tile.gif" height="62px"><a name="Termine Allgemein"><img border="0" src="terallg.jpg"></a></td></tr>'.$tab;
if ($anz==0) {
	$tab='<table border="0" cellpadding="0" cellspacing="0" valign="top" bgcolor="#A7C8A2" bordercolor="#000000" bordercolordark="#000000" height="'.$height.'" width="100%"><font face="Arial" size="2" color="'.$farbe.'"><center>keine Termine vorhanden</center></font>';
}

# --- HTML Header einrichten ---------------------------
print <<Kopf1;
Content-type: text/html


$tab
 <tr>
            <td width="607" background="foot.gif"><img border="0" src="foot.gif" width="4" height="7"></td>
                </tr>

</table>
Kopf1



##################################################################################
# UNTERPROGRAMME                                                                 #
##################################################################################
sub datum {
	my $dat = shift(@_);
	($sek, $min, $std, $tag, $mon, $jhr, $wtg, $jtg, $isdst)=localtime($dat);
	$jhr=$jhr+1900;
	#---- Wochentagskürzel ---------------------------------------------------
	$wtg =~ s/1/Mon/;
	$wtg =~ s/2/Tue/;
	$wtg =~ s/3/Wed/;
	$wtg =~ s/4/Thu/;
	$wtg =~ s/5/Fre/;
	$wtg =~ s/6/Sat/;
	$wtg =~ s/0/Sun/;
	#---- Monatskürzel -------------------------------------------------------
	$mon =~ s/0/Jan/;
	$mon =~ s/1/Feb/;
	$mon =~ s/2/Mar/;
	$mon =~ s/3/Apr/;
	$mon =~ s/4/May/;
	$mon =~ s/5/Jun/;
	$mon =~ s/6/Jul/;
	$mon =~ s/7/Aug/;
	$mon =~ s/8/Sep/;
	$mon =~ s/9/Oct/;
	$mon =~ s/10/Nov/;
	$mon =~ s/11/Dec/;

	$string=sprintf('%s, %02d-%s-%04d %02d:%02d:%02d GMT', $wtg, $tag, $mon, $jhr, $std, $min, $sek);
	return $string;
}

sub Wochentag {
	$wtg =~ s/1/Montag/;
	$wtg =~ s/2/Dienstag/;
	$wtg =~ s/3/Mittwoch/;
	$wtg =~ s/4/Donnerstag/;
	$wtg =~ s/5/Freitag/;
	$wtg =~ s/6/Samstag/;
	$wtg =~ s/0/Sonntag/;


was muss ich machen das ich nicht die ganze liste ausgegeben bekomme sondern das nur z.B. 2 oder beliebig eistellbare anzahl der termine auf der seite ausgegeben werden?
ich kenne mich nicht so gut aus mit der ganzen programmierung und wäre euch dankbar für hilfe weil ich nicht mehr weiss was ich machen soll...

MfG
Cosy

  Profil   Editieren   Zitieren
 

Antworten
Nach oben