hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!


Forenindex » Programmierung/Entwicklung » Perl und CGI » Datum aus Changelog-Textdatei auslesen

 



Meshuggah
Beiträge: 3

28. Jan 2008, 09:13

Beitrag #1 von 5
Bewertung:

(5228 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Datum aus Changelog-Textdatei auslesen


Hallo zusammen,
ich hab da ein kleines oder größeres Problem:

Ich habe ein Skript, welches eine Tabelle mit drei Spalten generiert. In der ersten Spalte sollen Programme und in der zweiten die dazugehörigen Erstellungsdaten angezeigt werden. Die dritte Spalte ist für das Problem nicht relevant. Diese Erstellungsdaten sind der changelog.txt zu entnehmen, welche ungefähr so aussieht:

-----------------------------------------------
CHANGELOG FÜR PROGRAMM 1
-----------------------------------------------

Version Datum Änderungen

------- ---------- ---------------

P1_Version_1 18.01.2008 - erstversion

P1_Version_2 19.01.2008 - dies und das
- so einiges
- außerdem das

Soll heißen, wenn in der ersten Spalte als Programm P1_Version_1 steht, soll als Datum der Version der 18.01.2008 ausgegeben werden. Ich habe es zuerst mit der stat-Funktion probiert, aber die gibt ja nur die Sekunden seit dem 1.1.1970 an und das ist etwas ungünstig. Die Textdatei müsste ja mit open auslesbar sein, aber die Einbindung in den Code passt wohl noch nicht so ganz...

Relevanter Ausschnitt des Codes:


Code:

Code
} 

foreach (sort(@VZ)) {

if ( !($_ =~ /^\.{1,2}$/) ) {
printf("<tr>");
if ( -d $hz.$_ ) {
opendir(P_DIR, $hz.$_); # || die "$Verzeichnis: $!";
my @p_dir = readdir(P_DIR);
closedir(P_DIR);
printf("<td><b>%s</b></td>\n", $_);
printf("<td></td>\n", (stat($hz.$_))[9] );
printf("<td>");
print_file($hz,$hz.$_."/programmbeschreibung.txt");
printf("</td>");
foreach $p_dir (sort(<@p_dir>)) {
if ( !($p_dir =~ /^\.{1,2}$/) && -d $hz.$_."/".$p_dir) {
print("<tr>");
printf("<td><a href='$pfad$p_dir'>%s</a></td>\n", $p_dir);
printf("<td>%s</td>\n");
printf("<td>%s</td>\n"); # #hier soll das Datum eingetragen werden! print("</tr>");
}
}

}
printf("</tr>");
}
}

Kann da freundlicherweise jemand helfen? Werden noch mehr Angaben / Erklärungen gebraucht?

mfg
D.
Top

oesi50  A  S
Beiträge: 2280

28. Jan 2008, 10:37

Beitrag #2 von 5
Beitrag ID: #333579

Bewertung:

(5224 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Datum aus Changelog-Textdatei auslesen


hallo Meshuggah

das Ergebnis von stat kannst du so auswerten:

Code
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday, $isdst) = localtime($unixtime); 
$mon +=1;
$year +=1900;


die Versionszeile kannst du einfach mit split auseinandernehmen

Code
$versionszeile = 'P1_Version_2 19.01.2008 - dies und das'; 

my ($version_text, $version_datum, undef) = split(/\s/, $versionszeile, 3);

print "---$version_text---$version_datum---";



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)

als Antwort auf: [#333556] Top

Meshuggah
Beiträge: 3

28. Jan 2008, 12:20

Beitrag #3 von 5
Beitrag ID: #333606

Bewertung:

(5216 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Datum aus Changelog-Textdatei auslesen


Hallo oesi50,

zuerst herzlichen Dank für deinen Beitrag!

Ich habe es mit dem stat-Befehl versucht und den wie folgt in meinem Skript eingebaut:

Code
 
my @info = stat($hz.$_."/".$p_dir);
my @date = localtime($info[9]);
my $datum = ("%02d.%02d.%04d", $date[3], $date[4]+1,$date[5]+1900);
printf("<td>$datum</td>\n");


Allerdings wird das Datum anstatt im Format DD.MM.YYYY nur in YYYY (hier: 2008) ausgegeben. Ich kann mir das gerade nicht erklären. Hast du da einen Tipp?

edit:

Nun funktioniert die Ausgabe. Allerdings wird immer das gleiche Datum ausgegeben, vermutlich ist bei der Schleife dann was falsch...

als Antwort auf: [#333579]

(Dieser Beitrag wurde von Meshuggah am 28. Jan 2008, 12:38 geändert)
Top

Meshuggah
Beiträge: 3

28. Jan 2008, 13:01

Beitrag #4 von 5
Beitrag ID: #333614

Bewertung:

(5208 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Datum aus Changelog-Textdatei auslesen


Hm..ich kann gerade nicht bearbeiten, aber das genannte Problem hat sich glaub ich erstmal gelöst.

Herzlichen Dank für die Hilfe!

als Antwort auf: [#333606] Top

oesi50  A  S
Beiträge: 2280

28. Jan 2008, 13:02

Beitrag #5 von 5
Beitrag ID: #333615

Bewertung:

(5206 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Datum aus Changelog-Textdatei auslesen


Zitat Allerdings wird immer das gleiche Datum ausgegeben


Das kann schon sein. Wenn eine Datei geändert wird, heist das nicht zwingend, dass auch der dazugehörige Verzeichniseintrag geändert wird. Du musst also die Modifikationszeit der Datei und nicht des Verzeichnisses abfragen.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)

als Antwort auf: [#333606] Top


Forenindex » Programmierung/Entwicklung » Perl und CGI » Datum aus Changelog-Textdatei auslesen


^