Recuperar contactos de un pocketpc

julio 10th, 2008 | por aprendizdetodo |

Por temas de trabajo me he tenido que enfrentar al problema de recuperar los contactos de un pocket pc que por error al sincronizar con outlook los había borrado todos.

He buscado información sobre el formato del fichero pim.wol donde sé que se guardan los contactos y las citas.

Por más que he buscado no he encontrado ninguna descripción sobre la estructura del fichero, ni tampoco sobre la estructura de la base de datos que usa, que se llama EDB-Database-Format.

Lo único que he visto ha sido este fantastico script en perl que permite recuperar los contactos.

Reproduzco el script:

#!/usr/bin/perl
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”;}

Con este script he recuperado el 80% de los contactos.

Luego usando el comando strings pim.vol he obtenido una lista de cadenas entre las que están el 20% que falta pero que es necesario procesar a mano, comparando con los datos que ya tenemos.

De las citas me ha sido imposible recuperar nada.

  1. 9 Responses to “Recuperar contactos de un pocketpc”

  2. Por rock sobre ago 8, 2008 | Respuesta

    Saludos… me acaba de pasar lo mismo y ya encontré el archivo pim.vol dentro de mi pocket pc, es un HTC 620, pero no entiendo, dónde debo de poner ese script? y después cómo lo abro? porfa si puedes ayudarme te agradecería bastante…

    perdí mis contactos poniéndole una palomita en la sincronización de contactos y ya no tengo nada en el teléfono ni en la computadora.

    Gracias!

  3. Por aprendizdetodo sobre ago 8, 2008 | Respuesta

    Este script está escrito en perl. Si lo quieres ejecutar desde windows tienes que tener instalado un interprete perl como activateperl (aquí más detalles).

    Una vez instalado podrás ejecutar el script.

    Suerte.

  4. Por A.Gorilla sobre oct 5, 2008 | Respuesta

    Hola tengo el mismo incoveniente que ustedes, pero la verdad es que no tengo ni idea como hacer funcionar el script mediante el perl, si pudieses explicarte un poco mas acerca de como se usa el script mediante el perl te lo agradeceria mucho. Saludos y Gracias anticipadas!

    Gabriel

  5. Por sercontri sobre oct 11, 2008 | Respuesta

    buenas, a mi tb me ha pasado lo mismo borrando la sincronizacion del ActiveSync de un amigo que no tenia sincronizada con su ordenador. Echarme una mano por favor…

  6. Por angel sobre nov 18, 2008 | Respuesta

    Hola que tal…

    ami me paso algo similar, solo que hice el backup antes de realizar la sincronizacion por primera vez, y me borro todo, al regresar mi backup respaldado magia no aparecen mis contactos ni mis citas, como los puedo recuperar?

    Te agradeceria mucho de tu ayuda gracias…

  7. Por lev sobre sep 1, 2009 | Respuesta

    Buenas, Yo he cometido un error grave al sincronizar mi pc nuevo con mi htc, con lo que perdi todos mis contactos del htc. como solucion he seguido los pasos arriba descritos y no logro recuperar la informacion a pesar de que el script corre, pero imprime en la pantalla informacion aleatoria del archivo pim.vol

  8. Por Llefri sobre ago 30, 2010 | Respuesta

    Amigo por favor me podrias indicar como hacer andar este script? baje el programa de la pagina que indicas pero no se como hacer funcionar el script.
    Te lo agradeceria muchisimo de verdad.
    Gracias.

  9. Por okawa sobre nov 6, 2010 | Respuesta

    Necesito ayuda con esto,he intentado ejecutar el script,pero no se exactamente que comando tengo que poner. Tengo instalado el interprete de perl y en la consola de windows he puesto lo siguiente:

    C:\>perl parse_pim.pl

    Pero me lanza el siguiente error:

    Backslash found where operator expected at parse_pim.pl line 37, near “print $co
    ntact.”\”
    (Might be a runaway multi-line “” string starting on line 29)
    (Do you need to predeclare print?)
    String found where operator expected at parse_pim.pl line 37, at end of line
    (Missing semicolon on previous line?)
    syntax error at parse_pim.pl line 37, near “print $contact.”\”
    Can’t find string terminator ‘”‘ anywhere before EOF at parse_pim.pl line 37.

    Por favor ayudame!!

  10. Por admin sobre nov 6, 2010 | Respuesta

    Creo que te falta añadir el nombre del archivo que quieres recuperar…

Añade un comentario