The current schema does not properly handle databases created by MobileDB 4. Extra field types were added in MobileDB 3, and there also seems to be a bug with how MobileDB 4 saves its data.
* The field lengths record contain 20 entries, violating the MobileDB structure documentation which states that it only contains 19. Fix PalmLib::FlatFile::MobileDB::build_record() to be a little looser when checking the number of fields for that record.
* The number of fields in each data record is not always 20. One must check the field labels record and trim 0-length entries. The number of fields must be reduced for parsing data records.
* MobileDB 3 introduced integer, float, date, time, and other data types. Conversion currently treats everything as strings.
Logged In: NO
I managed to hack MobileDB 3 and 4 support into pdb2csv, and
I've verified it with several databases. The changes to
libflatfile/MobileDB.cpp are pretty straight-forward. Is
there any interest in integrating the changes?
Logged In: YES
user_id=1199601
The attached patch parses the MobileDB 4 extended fields. Most importantly, dates and times are now properly converted from Palm-epoch strings into meaningful values. Integers, float, and booleans are converted as well.
Patch adds support for reading and writing extended MobileDB 4 fields.
Logged In: YES
user_id=1199601
Originator: YES
I tested this attached patch with both csv2pdb and pdb2csv. I'll also attach my test database, as it contains the new fields.