• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
&tag(Palm,Program);

PalmOne社のPIMアプリ「Tasks」のデータベースに関して。

*データベース
*データベース [#c435d4ef]
~
|Name|TasksDB-PTod|
|Type|DATA|
|Creator|PTod|

*レコードの構造
*レコードの構造 [#gba15aeb]

(PalmOneから仕様が発表されていないため、分かる範囲でのメモ)

-レコードの先頭から6つのデータの構造
 typedef struct {
 	UInt16 	infoFlag;		// 7番目以降のデータの情報
 	UInt16 	unknown1;		// ?
 	UInt16 	unknown2;		// ?
 	UInt16 	completeFlag;	// 完了?
 	UInt16 	unknown3;		// ?
 	UInt16 	priority;		// 優先順位
 } TasksHeaderType;

-infoFlag のビットの意味
-ヘッダーの構造
#geshi(C){{
typedef struct {
	UInt8 	flag;		// 情報
	UInt8 	unknown1;	// ?
	UInt8 	unknown2;	// ?
	UInt8 	completeFlag;	// 完了?
	UInt8 	unknown3;	// ?
	UInt8 	priority;	// 優先順位
 	char	firstField;	// flagにより変わる
} TasksHeaderType;
}}
-flag のビットの意味
--0x40 : 完了
--0x80 : 日付あり
--0x04 : Noteあり
--0x08 : 表題あり
--0x08 : Description(表題)あり

-レコードの先頭から7番目以降のデータは、基本的には次の順番で並ぶ。
 typedef struct {
 	DateType 	dueDate;		// 日付
 	Char *	description;	// 一覧に表示される表題
 	Char *	note;		// Note
 } TasksItemType;
-ただし、infoFlagのビットがたっていないものは省略される。以下例。(定義するほどのものでもないけど)
--0x8cの場合はそのまま
 typedef struct {
 	DateType 	dueDate;
 	Char *	description;
 	Char *	note;
 } TasksItemType;
--0x04の場合
 typedef struct {
 	Char *	note;
 } TasksItemType;
--0x08の場合
 typedef struct {
 	Char *	description;
 } TasksItemType;
-firstField以降のデータは基本的には次の順番で並ぶ。
#geshi(C){{
DateType 	dueDate;	// 日付
Char *		description;	// 一覧に表示される表題
Char *		note;		// Note
}}
ただし、flagの上位ビットが0の場合は、dueDateが省略される。