Как восстановить контакты из Pim.vol

Тема в разделе "Perl программирование", создана пользователем -, 14 янв 2009.

  1. Гость

    Доброго времени суток, уважаемые!
    В кратце: Из КПК вытащил файл 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.
    =========================================================================
    взято от сюда: http://www.eggheadcafe.com/software/aspnet...ol--edbfil.aspx

    может файл(pim.vol) прикрутить сюда? может кто-нибудь парит в этом всём. Я просто опух от этого всего.
    Мало того, что по англисски мало ясно, а тут ещё и программировать надо. Помогите кто может!
     
  2. Vovochka

    Vovochka Гость

    Я оказывается и русский теперь плохо понимаю...
    В чем вопрос то?
     
  3. Гость

    Вам программистам хорошо на свете жить, вы в знакомых буквах всегда подвох можете найти :)
    Вопрос он такой, что имеется файл (pim.vol) из КПК( карманный персональный компьютер) а в нём содержится массив данных ( хотя не уверен, что выражаюсь правильно) так вот, там данные про входящие звонки, телефонные номера контактов, планируемые календарные задачи, а так же заметки, ну наверно много чего ещё. Файл бинарный. При просмотре в двоичном редакторе цифры ещё разобрать можно, а вот с буквами разброс и закракозябрено всё, ещё и с пробелами между словами и какими-то постороннеми знаками и символами.
    Долгие поиски привели меня к тому, что как я понял, наши русские ешё не нашли способ восстановления данных из этого файла,но на одном буржуйском сайте наткнулся на описание способа, которым можно восстановить номера телефонов и имён к ним.

    В переводе, как я понял он пишет: В результате, я сделал маленькую программку, которая грамотно разбирает бинарные данные и даёт телефонные номера как результат.
    Сначала она даёт номера из списка вызовов и затем входит в контакт со списком.

    Далее он приводит код программы и при помощи Perla собирает данные в нормальный человеческий вид.
    Таким образом можно восстановить данные и помочь, я не побоюсь этого слова, тысячам граждан нашей необьятной ...
    Конечно же мне предлагали вытащить эти данные различными бэкаповскими программами, сохранителями и т. подобное, но это всё работает на исправном КПК или если данные хоть когда-нибудь сохранялись. Но тут не тот случай. Есть только один файл, который верой правдой служил человеку более 3-х лет, а теперь всё :D КПК сломался и остался только pim.vol
    Могу файл прикрутить или как-то передать для просмотра, но кажется это будет не совсем корректно светить данные на всеобщее обозрение для спамеров и ..... как их там ещё???

    Надежда умирает последняя. Или всё, и уже пора идти мылить верёвку??

    Прочитав его пост, я понял, что если на компьютере стоит программная среда Perl и есть человек, который умеет обращаться с этим правильно, то можно и данные выудить, и восстановить многое. Одним словом хорошее дело состоится.
    ...... и будут нас помнить долго и памятник поставят гранитный на спину. :D
     
  4. Vovochka

    Vovochka Гость

    Ладно, кидай файл на vovochka13 (at) gmail.com
    Может что получиться.
     
  5. Vovochka

    Vovochka Гость

    Короче, коль уже несколько людей на меня вышло с этой темой, напишу тут сразу.
    Формат этих файлов закрыт и средств для их разбора фактически нет.

    Приведенный выше скрипт - вообще не панацея.
    Русский язык в файлах как-то кодирован, разбираться где там запрятаны эти имена фамилии времени нет.
    Максимум что можно получить из файла - голый список телефонных номеров.
     
Загрузка...

Поделиться этой страницей