G
Guest
Доброго времени суток, уважаемые!
В кратце: Из КПК вытащил файл pim.vl в котором содержатся записи контактов и соответственно календарные записи.
На буржуйском сайте нашёл что-то типа описания скрипта, но необходимо иметь установленный Perl на компе.
Есть только pim.vol и написание, правда не знаю это то или не то:
Он пишет, что нашёл английский текст и цифры в текстовом файле pim.vol.
В результате чувак сделал небольшую программу, которая может хорошо проанализировать двоичные данные и даёт телефонные номера в качестве результата.
(в первую очередь это даёт номера из списка последних звонков и список контактов):
Далее выписка:
As result I made a small program that parse binary data well and gives tel numbers as result (first it gives numbers from last calls list and then contact list):
sasha@lt:~/software/htc/contact$ perl parse_pim.pl pim.vol
Start parsing..
Спойлер (+/-)
89035450000;Vlad
89105440000;Aaa
ANDREI;89167750000
Alexey Maks;90589265000000
...
The program is:
exit "Usage: parse_pim.pl filename" unless $ARGV[0];
print "Start parsing..\n";
my $cond = "wait";
my $contact = '';
my %contacts;
open(F, "<".$ARGV[0] );
my $s;
while(read(F, $s, 1) ) {
while($s =~ /./g) {
if( ord($s) == 8 && $cond eq "wait" ) {
$cond = "zero";
} elsif ( ord($s) == 0 && $cond eq "zero" ) {
$cond = "start";
} elsif ( $cond eq "zero" ) {
$cond = "wait";
} elsif ( ( $cond =~ /^start|read$/ || ( $cond > 0 && $cond < 6 )) && ( ( ord($s) >= 48 && ord($s) <= 57 ) || ( ord($s) >= 97 && ord($s) <= 122 ) || ( ord($s) >= 65 && ord($s) <= 90 ) || ord($s) == 32 ) ) {
$contact =~ /(.)$/;
if( ( ord($1) < 48 || ord($1) > 57 ) && ( ord($s) >= 48 && ord($s) <= 57 ) ) {
$contact .= ';';
}
$contact .= $s;
$cond = "read";
} elsif ( $cond eq 'read' ) {
$cond = 1;
} elsif ( $cond >= 4 ) {
$cond = "wait";
$contacts{$contact} = 1 if $contact =~ /\d{5,}/ && $contact =~ /\w+/;
$contact = '';
} elsif ( $cond > 0) {
$cond++;
}
}
}
close(F);
for my $contact (sort keys %contacts) {
print $contact."\n";
}
# I translated the result to Outlook contact list then (because it is possible to synchronize Outlook contact list with my htc3300 WM5 device). Next steps:
# 0. I created CSV template file (with required fields) using Outlook contact export to CSV first. helped me
# 1. I translated the perl prg output to CSV file
# 2. I imported CSV to Outlook contact list.
# 3. I synchronized htc3300 contact list with outlook.
Sasha.
=========================================================================
взято от сюда:
может файл(pim.vol) прикрутить сюда? может кто-нибудь парит в этом всём. Я просто опух от этого всего.
Мало того, что по англисски мало ясно, а тут ещё и программировать надо. Помогите кто может!
В кратце: Из КПК вытащил файл pim.vl в котором содержатся записи контактов и соответственно календарные записи.
На буржуйском сайте нашёл что-то типа описания скрипта, но необходимо иметь установленный Perl на компе.
Есть только pim.vol и написание, правда не знаю это то или не то:
Он пишет, что нашёл английский текст и цифры в текстовом файле pim.vol.
В результате чувак сделал небольшую программу, которая может хорошо проанализировать двоичные данные и даёт телефонные номера в качестве результата.
(в первую очередь это даёт номера из списка последних звонков и список контактов):
Далее выписка:
As result I made a small program that parse binary data well and gives tel numbers as result (first it gives numbers from last calls list and then contact list):
sasha@lt:~/software/htc/contact$ perl parse_pim.pl pim.vol
Start parsing..
Спойлер (+/-)
89035450000;Vlad
89105440000;Aaa
ANDREI;89167750000
Alexey Maks;90589265000000
...
The program is:
exit "Usage: parse_pim.pl filename" unless $ARGV[0];
print "Start parsing..\n";
my $cond = "wait";
my $contact = '';
my %contacts;
open(F, "<".$ARGV[0] );
my $s;
while(read(F, $s, 1) ) {
while($s =~ /./g) {
if( ord($s) == 8 && $cond eq "wait" ) {
$cond = "zero";
} elsif ( ord($s) == 0 && $cond eq "zero" ) {
$cond = "start";
} elsif ( $cond eq "zero" ) {
$cond = "wait";
} elsif ( ( $cond =~ /^start|read$/ || ( $cond > 0 && $cond < 6 )) && ( ( ord($s) >= 48 && ord($s) <= 57 ) || ( ord($s) >= 97 && ord($s) <= 122 ) || ( ord($s) >= 65 && ord($s) <= 90 ) || ord($s) == 32 ) ) {
$contact =~ /(.)$/;
if( ( ord($1) < 48 || ord($1) > 57 ) && ( ord($s) >= 48 && ord($s) <= 57 ) ) {
$contact .= ';';
}
$contact .= $s;
$cond = "read";
} elsif ( $cond eq 'read' ) {
$cond = 1;
} elsif ( $cond >= 4 ) {
$cond = "wait";
$contacts{$contact} = 1 if $contact =~ /\d{5,}/ && $contact =~ /\w+/;
$contact = '';
} elsif ( $cond > 0) {
$cond++;
}
}
}
close(F);
for my $contact (sort keys %contacts) {
print $contact."\n";
}
# I translated the result to Outlook contact list then (because it is possible to synchronize Outlook contact list with my htc3300 WM5 device). Next steps:
# 0. I created CSV template file (with required fields) using Outlook contact export to CSV first. helped me
# 1. I translated the perl prg output to CSV file
# 2. I imported CSV to Outlook contact list.
# 3. I synchronized htc3300 contact list with outlook.
Sasha.
=========================================================================
взято от сюда:
Ссылка скрыта от гостей
может файл(pim.vol) прикрутить сюда? может кто-нибудь парит в этом всём. Я просто опух от этого всего.
Мало того, что по англисски мало ясно, а тут ещё и программировать надо. Помогите кто может!