SMS sortieren von Nokia PC Suite
Sunday, 25. November 2007, 14:49:03
Mit Nokia PC Suite kann man SMS auf dem PC abspeichern. Leider erhalten die SMS (jede in einer einzelnen Datei) dabei das Datum des Abspeicherns und nicht das Datum der SMS. Sortierung nach Datum ist so unmöglich. Mit einem Perl-Script kann man das beheben (in einem Ritt für alle *. vmg des Verzeichnisses):
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.
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.
- 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.