http://qs321.pair.com?node_id=11100219


in reply to parsing Palm databases

I use palm2ical from http://hepunx.rl.ac.uk/~adye/software/palm/palm2ical/, which uses Palm::Datebook, although that doesn't do memos. However, looking at its code, plus the examples in Palm distro, gives me this code, which works for me:

use Palm::Memo; my $pdb = Palm::PDB->new(); $pdb->Load($filename); use Data::Dump; dd $pdb;

Another alternative, although not Perl, is to use J-Pilot to open the files directly.

Replies are listed 'Best First'.
Re^2: parsing Palm databases
by morgon (Priest) on May 19, 2019 at 01:56 UTC
    Thanks for your reply, however your code also produces the same error message on my system when I try to load "MemosDB-PMem.pdb".

    No handler defined for creator "PMem", type "DATA"

      On my system, MemoDB.pdb and MemosDB-PMem.pdb have exactly the same textual content (as per strings), with different binary formats. I can reproduce the error message with the latter file, but the former works. My understanding is that the latter file is from newer Palm versions, and I guess it's possible that if you have a newer Palm, you only have MemosDB-PMem.pdb? In that case, sorry, I'm not sure where to go from there, Google results are pretty thin. Have you tried J-Pilot? As far as I can tell from the source code, it can read both formats.

        What seems to have happened is that Palm changed the Memo-DB format but it seems they never documented the new format which may explain why nobody incorporated these changes into Palm::Memo.

        J-Pilot (though I have not tried it) seems to be able to handle it though - they must have reverse-engineered the format (it may be a nice exercise to use that for updating Palm::Memo)

        But for me the workaround is to simply use Palm::Raw, I can live with what I can get with that, eg:

        use Palm::PDB; use Palm::Raw; use Data::Dumper; my $pdb = new Palm::PDB; $pdb->Load("MemosDB-PMem.pdb"); print Dumper($pdb);