[ANN] Read/write Palm databases from Squeak (PDB/PRC)

Helge Horch Helge.Horch at munich.netsurf.de
Tue May 23 20:53:26 UTC 2000


Folks,

here's a goodie for those of us with 3com Pilots and assorted compatibles: 
Import, manipulate (mutilate?) and export Palm databases (in PDB format) or 
resource files/applications (in PRC format) -- all from your regular 
Squeak.  Well, I used 2.8a2158, so that's what I'd recommend for filing in to.

This might be remotely useful for those working with PocketSmalltalk 
<http://www.pocketsmalltalk.com> or even for the upcoming port of the PSt 
IDE to Squeak.  (Andrew? Eric? I'll copy this announcement to the PSt list...)

The goodie does not implement specific resource types (alerts, forms, 
etc.).  Nor does it "parse" the datebook format, or other specific record 
formats.  This might be layered on top of it, however.

What it *does* do, is to implement the full (to my best knowledge) format 
spec for PDB/PRC files, that is, you can read and create appInfoArea 
blocks, get/set the embedded dates into Squeak dateAndTimes, manipulate all 
database and record attributes, version numbers, etc.

It unifies the handling of PDBs/PRCs in a single 'PDB' class, as well as 
records and resources in a single 'PilotRecord' class.  Two classes, that's 
all.  No fuss, no warranties, Squeak license.

Now, if someone has a Smalltalkish M68k assembler/disassembler gathering 
dust somewhere... please speak up.

Read the full scoop (and download from)
<http://home.munich.netsurf.de/Helge.Horch/SqueakSharesSoar.html#PDBPRC>

Here's some teasers:
[---snip---]

Create a very simple PDB. Note the 'false' parameter to resource:..."

(PDB named: 'My first PDB' type: 'HELL' creator: 'WORL' resource: false)
	addRecord: (PilotRecord new data: 'Hello, world.'; attributes: 0);
	exportToNewFileNamed: 'MyPDB.pdb'.

"Reopen it and examine its contents."

(PDB new importFromFileNamed: 'MyPDB.pdb') explore.

"Create a very simple PRC. Do not sync that one to a real Pilot."

(PDB named: 'My first PRC' type: 'HELL' creator: 'WORL' resource: true)
	addRecord: (PilotRecord new type: 'NONS'; id: 101; data: 'Hello, world.');
	exportToNewFileNamed: 'MyPRC.prc'.

"Reopen it and examine its contents."

(PDB new importFromFileNamed: 'MyPRC.prc') explore.

[---snip---]

Cheers,
Helge





More information about the Squeak-dev mailing list