Thread Datum der letzen Dateiänderung? (8 answers)
Opened by J-jayz-Z at 2005-06-07 14:46

AbRaXaS
 2006-05-22 16:59
#55411 #55411
User since
2006-05-22
30 Artikel
BenutzerIn
[default_avatar]
Mahlzeit!

Ich als Perl-n00b (hatte bisher noch nie mit Perl zu tun, nur mit anderen Skriptsprachen) bin gerade am verzweifeln.
Vielleicht fällt jemandem was zu meinem Problem ein:

Zur Erklärung: das gleich folgende Skript generiert eine Indexseite, wo die Texte als html auf einer Seite dargestellt werden. Die unterschiedlichen Texte haben eine Überschrift und den Text. Nun soll auch das Datum angezeigt werden, von wann dieser Text ist. Dazu habe ich die die stat()-Funktion benutzt.
Nun generiert er mir den Index, schreibt auch das Datum, ist aber immer wieder das Datum der letzten Datei aus dem Verzeichnis.
Da wo
Code: (dl )
print $konvertiertes_datum;

steht, soll das Datum erscheinen:

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
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
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/local/bin/perl

use CGI;
use CGI::Carp qw(fatalsToBrowser);

$BASEPATH=$ENV{DOCUMENT_ROOT};

#Maximum of Messages
$MAX=20;


$CGI2="/cgi-bin/view.pl";
$SCRIPTNAME="skript.pl";
$URL="http://www.domain.de";
$PATH="/skripte/generierteSeiten";
$IPATH="/skripte/skripte-OnLine";
$query = new CGI;
$D1="\x0d";
$C1="\x0a";
$categ=$query->param('cat');
if ( ($query->param('show') eq 1) && ($query->param('artikel') ne "") ){}
else{

###### Verzeichnis oeffnen
opendir VERZ , "$BASEPATH$PATH";
@alledateien = grep !/^\.\.?$/, readdir VERZ;
closedir VERZ;
##########################

$anzahldatei = @alledateien;
$x=0;
$z=0;
$a=0;
while($x<$anzahldatei){
$datei=$alledateien[$x];

($name, $dateiend) = split (/\x2e/, $datei, 2);
if (($dateiend eq "nitf") or ($dateiend eq "NITF")){
&generateIndex
;
}
$x+=1;
}

###### Verzeichnis oeffnen
opendir VERZ , "$BASEPATH$PATH";
@alledateien = grep !/^\.\.?$/, readdir VERZ;
closedir VERZ;
##########################

$anzahldatei = @alledateien;

if ($a < 0){
$x=0;
while($x<$anzahldatei){
$categ="/thema/";
$datei=$alledateien[$x];
($name, $dateiend) = split (/\x2e/, $datei, 2);
if (($dateiend eq "nitf") or ($dateiend eq "NITF")){
&generateIndex;
}
$x+=1;
}
}

&sendeIndex;
}

sub generateIndex {

&main;
&filter1;

}

sub getPicture {
...
if (){
while(){
&parseBuFile;
}
}
}

sub filter1 {

}

sub getAnreisser {

}

sub parseBuFile {

}


sub sendeIndex {

foreach $key ())
{
if ($timer < $MAX){
}
}

if (){
}

foreach $key (){
if (){
if (){

print $konvertiertes_datum;
}
else{
}

}
}
}


sub main {

&getPicture;
&getAnreisser;

}

___END___


wo also muß ich nun folgendes einbauen, damit das funktioniert. Ich habe den Überblick verloren und weiß nicht, wo ich es schon überall hineingebaut hatte:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$PFAD="../www/Skripte/generierteSeite/";
$datei = "$PFAD$datei";
@Info = stat($datei);
$konvertiertes_datum = &konvertiere_datum($Info[9]);

sub konvertiere_datum {
$Seconds = $Info[9];
$Seconds = shift;

@date = ( localtime($Seconds) )[0..5];
$date[4]++;
$date[5] += 1900;

foreach $d (@date[2..4]) {
$d = sprintf("%02d", $d);
}

$date = join(".", @date[3,4,5]);
return "$date";
}


Ich habe hier nur Auszüge und wichtigsten Schleifen abgebildet, den kompletten Quellcode darf ich nicht öffentlich machen, deshalb nur der Auszug. Ich hoffe das ist übersichtlich genug, damit da jemand was mit anfangen kann.

View full thread Datum der letzen Dateiänderung?