I have a utility that auto-runs from an unlocked SD card as
"/Palm/start.prc". This utility is never run on the same device twice, so
I cannot rely on storing application-specific prefs on the device
itself. Any such persistent values must be embedded into "/Palm/start.prc"
I need this application to present a user-modifiable preference, and to
persist this information between invocations. This means I have to
read/write the preference from the "/Palm/start.prc" file on the SD card,
and NOT from the in-memory temporary copy of the application.
Can someone suggest a good way to do this? My options as I see them:
1) Leverage the app prefs block to contain my preference setting, via
PrefGetAppPreferences() / PrefSetAppPreferences(). Then, in AppStop(), if
the pref block is dirty, update the file on the SD card by first deleting
"/Palm/start.prc" and then VFSExportDatabaseToFile( localPDB,
"/Palm/start.prc").
2) Leverage the DataManager's AppInfo block. Read it using
DmGetAppInfoID(), and update it by using VFSFileSeek() and VFSFileWrite()
on "/Palm/start.prc".
I would prefer approach #2 to avoid the hassle (and overhead -- this is a
very large PRC) of deletion in approach #1. For approach #2, can I safely
use VFSFileSeek( myFile, vfsOriginBeginning, 0 ) to read in the
DatabaseHdrType structure that is supposed to comprise the beginning of any
PDB/PRC/PQA so that I may ascertain its appInfoID field, and then just seek
ahead that # of bytes to find (and update) the appInfo block? I am a
little hesitant to do this for fear that I might run into VFS headers that
wrap the PRC and cause trouble.
Thanks very much for your help!
-Jeff
--
For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
