[GastForen Archiv Perl und CGI Datum aus Changelog-Textdatei auslesen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Datum aus Changelog-Textdatei auslesen

Meshuggah
Beiträge gesamt: 3

28. Jan 2008, 09:13
Beitrag # 1 von 5
Bewertung:
(25410 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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.
X

Datum aus Changelog-Textdatei auslesen

oesi50
  
Beiträge gesamt: 2315

28. Jan 2008, 10:37
Beitrag # 2 von 5
Beitrag ID: #333579
Bewertung:
(25382 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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---";



als Antwort auf: [#333556]

Datum aus Changelog-Textdatei auslesen

Meshuggah
Beiträge gesamt: 3

28. Jan 2008, 12:20
Beitrag # 3 von 5
Beitrag ID: #333606
Bewertung:
(25374 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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)

Datum aus Changelog-Textdatei auslesen

Meshuggah
Beiträge gesamt: 3

28. Jan 2008, 13:01
Beitrag # 4 von 5
Beitrag ID: #333614
Bewertung:
(25366 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Datum aus Changelog-Textdatei auslesen

oesi50
  
Beiträge gesamt: 2315

28. Jan 2008, 13:02
Beitrag # 5 von 5
Beitrag ID: #333615
Bewertung:
(25364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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.


als Antwort auf: [#333606]
X