SMS sortieren von Nokia PC Suite
Sunday, November 25, 2007 2:49:03 PM
- Datum/Zeit aus der (Text-)Datei auslesen (Unicode)
- Zeitstempel berechnen (Funktion Mktime aus Date-Calc)
- Datum/Zeit setzen
Das Ganze lief bei mir unter Win XP mit Active Perl, das Package Date muß man bei Bedarf noch installieren, eventuell mit dem Package-Manager.
#!/usr/bin/perl
use Date::Calc qw(:all);
$orgein = $/;
#-- für alle Dateien -----------------------------------------------
#-- für alle Dateien des Verzeichnisses
if (!opendir(DIR, ".")) { die "Kann Verzeichnis nicht lesen, Abbruch!\n"; }
@files = readdir(DIR);
closedir(DIR);
jededatei:
foreach $file (@files) {
if ($file =~ m/\.vmg$/i) {
#-- Zeit aus Datei lesen ----------------------------------------------
if (!open (DAT, $file)) {
print "Kann Datei [$file] nicht lesen, Abbruch!\n";
next jededatei;
}
undef $/;
$dat = <DAT>;
close (DAT);
$/ = $orgein;
$dat =~ s/\x00//g;
if ($dat !~ m/Date:(\d\d)\.(\d\d)\.(\d\d\d\d) (\d\d)\:(\d\d)\:(\d\d)/i) {
$dat =~ m/Date:([^\r\n]+)[\r\n]/is;
print "--------------------\n$dat\n--------------------\n";
die "Falsches Format Datum in Datei [$file] : [" . $1 . "], Abbruch!\n";
}
$D = $1; $M = $2; $Y = $3;
$h = $4; $m = $5; $s = $6;
#-- Zeitstempel berechnen ---------------------------------------------
#-- Funktion aus Date-Calc
$timestamp = Mktime($Y,$M,$D, $h,$m,$s);
#-- timestamp setzen --------------------------------------------------
print "$file - $D.$M.$Y $h:$m:$s - $timestamp\n";
utime $timestamp, $timestamp, $file;
}
}
Nachtrag
Noch weiter ginge diese Idee, alle SMS in eine Datei zu schreiben. Die Werte werden Tabulator-separiert. Damit kann man die Datei in Excel oder Open Office Calc öffnen. Wen die Lösung interessiert, bitte melden.







