PDBはPalm OS、Garnet OS、Access Linux Platformのレコードデータベースのコンテナ形式です。その構造はPRCリソースデータベースに似ています。[1] PalmDOC eBook形式はPDB形式の特別なバージョンです。[2]
PDBファイルの構造
PDBファイルにはPDBヘッダー、PDBレコードヘッダー、レコードが含まれています。[3] [4]
PDB ヘッダー
PDBヘッダーはファイルの先頭にあり、ファイルのメタ情報が含まれています: [3]
PDB レコード ヘッダー
各レコードには8バイトのレコードヘッダーがあり、次の内容が含まれています: [3]
PDB レコード
次にレコード自体が続きます。通常の順序は、AppInfoArea、SortInfoArea、レコードの順です。[4]
PDB 日付時刻
多くの PDB 形式ファイルでは、1904-01-01T00:00:00 からの秒数でカウントする時間が使用されていました。これは、オリジナルの Macintosh (Mac OS 9 まで) で使用されていた基本時間です。初期の開発では、Palm OS と Mac OS の間に密接な関係があったことに注意してください。符号なし 32 ビット整数と 1904 年エポックを使用すると、整数オーバーフローは 2040 年に発生します。
その他は、1970-01-01T00:00:00 (Unix エポック ベース時間) からカウントし、2038 年にオーバーフローする符号付き 32 ビット整数を使用していることが観察されます。
Palm OS Protein C/C++ コンパイラ言語およびライブラリ リファレンス、Copyright 2004 Palm Source では、1904 年から計算された日付を「古い Palm エポック」と呼び、1970 年から計算された日付を「UNIX エポック」と呼びます。Protein C では、これら 2 つのエポックを変換するための関数 (palm_seconds_to_time_t() および time_t_to_palm_seconds()) も提供されています。
一部の情報源によると、非常に古いファイルでは 1900 年からカウントされる時刻が使用されている可能性もあるようです (これは Excel のエポックと一致します)。
古い Palm (Mac OS 9) エポックと UNIX エポックの間のこの競合は残念ですが、Palm OS デバイスからコピーされたファイルを調べるときには、次のヒューリスティックが役立つ場合があります。
- 時刻の最上位ビットが設定されている場合、それは1904年1月1日から数えた符号なし32ビットの数値である。
- 時刻の最上位ビットがクリアされている場合、それは 1970 年 1 月 1 日から数えた符号付き 32 ビット数値です。
これは、そうでなければ、その時期は 1972 年以前か 1970 年以前 (解釈によって異なります) であり、その当時は PDB 形式が存在しなかったという考えに基づいています。
palmdump ユーティリティやその他のソフトウェアは、ファイルを読み取るときにこの経験則を使用します。
参照
参考文献
- ^ N. Rhodes、J. McKeehan。Palm OS プログラミング、第 2 版、O'Reilly、2001 年、ISBN 1-56592-856-3
- ^ MobileRead Wiki: PalmDOC 形式の仕様
- ^ abc Paul J. Lucas (1998) PDB (Pilot Database) ファイル形式。2022-02-23 にWayback Machineでアーカイブ。20090308 にアクセス。
- ^ ab Microfirst Software。パイロット記録データベースフォーマット、2009年3月15日アーカイブ、Wayback Machine 、 20090308にアクセス
