Форматы файлов DATEBOOK.DAT и DATEBOOK.DBA в Palm
Desktop
- Естественно, эти форматы для Palm Desktop под Windows.
- Информация, представлянная здесь может быть не совсем точной.
Так как официально, эти данные не являются открытыми.
- Компания Palm не рекомендует, вносить изменения в эти файлы самостоятельно.
Ответственность за все, что Вы будете делать с этими файлами и
структурой данный лежит полностью на Вас.
Имя поля |
Тип |
Размер |
Коментарии |
Version Tag |
Char |
4*Byte |
0x00 0x01 0x42 0x44 (DB10) for Datebook |
File Name |
CString |
|
Fully Qualified Filename of file on PC |
Table String |
CString |
|
Custom show header |
Next Free |
Long |
4*Byte |
Next Free Category ID |
Category Count |
Long |
4*Byte |
Count - 1 of the number of category entries (does not include Unfiled category) |
Category entries |
Category-Entry |
|
Occurs category count times (Note: the standard Palm datebook doesn't use categories, but the feature is actually
supported. 3rd party software may rely on categories, so you should allow for the possibility in your programming.) |
Resource ID |
Long |
4*Byte |
Schema Resource ID |
Fields per Row |
Long |
4*Byte |
Schema Fields per row. Will be 15 for datebook. |
Rec ID Pos |
Long |
4*Byte |
Schema Record ID Position (index to field table entry that contains record id) |
Rec Status Pos |
Long |
4*Byte |
Schema Record Status Position (index to field table entry that contains record status) |
Placement Pos |
Long |
4*Byte |
Schema Placement Position (index to field table entry that contains record placement position) |
Field Count |
Short |
2*Byte |
Schema Field Count (number of fields in schema) Corrected April 19, 2000 |
Field Entry |
Short |
2*Byte |
Schema field entry occurs field count times. For datebook the entries will
be 1,1,1,3,1,5,1,5,6,6,1,6,1,1,8 Corrected April 19, 2000 |
Num Entries |
Long |
4*Byte |
Record count * 15 (number of field entries in entire file, as noted, divide by 15 to arrive at actual record count) |
Datebook entry |
Datebook-Entry |
|
Occurs with record count (note, these records may be sorted in a specific order. It looks like the repeating events are first in the file. If you are adding
records to the file, you may need to insert the records in the proper sort order) |
Категории
Имя поля |
Тип |
Размер |
Коментарии |
Index |
Long |
4*Byte |
Category Index |
ID |
Long |
4*Byte |
Category ID |
Dirty Flag |
Long |
4*Byte |
Category Dirty Flag |
Long Name |
Cstring |
|
Long Category Name |
Short Name |
Cstring |
|
Short Category Name |
Datebook записи
Имя поля |
Тип |
Размер |
Коментарии |
Field Type |
Long |
4*Byte |
value 1 Integer |
Record ID |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 1 Integer |
Status Field |
Long |
4*Byte |
Bitwise Record Status: Pending = 0x08, Add = 0x01, Update = 0x02, Delete = 0x04, Archive = 0x80 |
Field Type |
Long |
4*Byte |
value 1 Integer |
Position |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 3 Date |
Start Time |
Long |
4*Byte |
Number of non-leap seconds since Jan 1, 1970 GMT |
Field Type |
Long |
4*Byte |
value 1 Integer |
End Time |
Long |
4*Byte |
Number of non-leap seconds since Jan 1, 1970 GMT |
Field Type |
Long |
4*Byte |
value 5 Cstring |
Padding |
Long |
4*Byte |
Always Zero Correction as of Nov 16, 1999 |
Description |
Cstring |
- |
- |
Field Type |
Long |
4*Byte |
value 1 Integer |
Duration |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 5 Cstring |
Padding |
Long |
4*Byte |
Always Zero Correction as of Nov 16, 1999 |
Note |
Cstring |
- |
- |
Field Type |
Long |
4*Byte |
value 6 Boolean |
Untimed |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 6 Boolean |
Private |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 1 Integer |
Category |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 6 Boolean |
Alarm Set |
Long |
4*Byte |
- |
Field Type |
Long |
4*Byte |
value 1 Integer |
Alarm Adv Units |
Long |
4*Byte |
Alarm Advance time units |
Field Type |
Long |
4*Byte |
value 1 Integer |
Alarm Adv Type |
Long |
4*Byte |
0-Minutes, 1-Hours, 2-Days |
Field Type |
Long |
4*Byte |
value 8 Repeat event |
Repeat Event |
Repeat-Event |
- |
|
Повторяющиеся события
Имя поля |
Тип |
Размер |
Коментарии |
Date Exceptions |
Short |
2*Byte |
Count of any date exception entries Corrected Nov 16, 1999 |
Exception entry |
Long |
4*Byte |
date exception entry, occurs with Date Exceptions. If date exceptions is zero, there will be no entries here. |
Repeat Event Flag |
Short |
2*Byte |
IMPORTANT 0xFFFF means that a class name record follows.
0x0000 that nothing further follows, you should stop reading the record.
Any other value will be the brand of the repeat event or'd with 0x8000 |
Class entry |
Class-Entry |
|
This field is present ONLY if the repeat event flag is 0xFFFF |
Brand |
Long |
4*Byte |
The Brand of the repeat event. Possible values are:
1 = Daily
2 = Weekly
3 = MonthlybyDay
4 = MonthlybyDate
5 = YearlybyDate
6 = YearlybyDay
Note that this field is present ONLY if the repeat event flag was NOT 0x0000
|
Interval |
Long |
4*Byte |
Note that this field is present ONLY if the repeat event flag was NOT 0x0000 |
End Date |
Long |
4*Byte |
Note that this field is present ONLY if the repeat event flag was NOT 0x0000 |
First Day of Week |
Long |
4*Byte |
Note that this field is present ONLY if the repeat event flag was NOT 0x0000 |
Brand Data |
Brand-Data |
- |
Variable brand data that depends upon the value of the Brand field
Note that this field is present ONLY if the repeat event flag was NOT 0x0000 |
Классы
Имя поля |
Тип |
Размер |
Коментарии |
Constant |
Short |
2*Byte |
Constant 1 |
Length |
Short |
2*Byte |
Length of Class Name |
Class Name |
Char |
Byte |
Class name of length specified. |
Brand-Data
Имя поля |
Тип |
Размер |
Коментарии |
Day Index |
Long |
4*Byte |
Present ONLY for Brand = 1 or Brand = 2 or Brand = 3 |
Days Mask |
Char |
1*Byte |
Present ONLY for Brand = 2 |
Week Index |
Long |
4*Byte |
Present ONLY for Brand = 3 |
Day Number |
Long |
4*Byte |
Present ONLY for Brand = 4 or Brand = 5 |
Month Index |
Long |
4*Byte |
Present ONLY for Brand = 5 |
Cstrings
Cstrings хранятся следующим образом:
- Строки меньше чем 255 байт хранятся с определенной длинной определенной
в первом байте определителя самой строки.
- Нулевые строки хранятся как 0x00.
- Строки в 255 байт или длиннее хранятся с флагом 0xFF за которыми следует
длинна определенная двумя байтами (2*Byte) в определителе самой строки.
Представление даты
Поле даты хранится в полном виде, представляя собой количество секунд с
1 января, 1970
GMT.
Это отличается от формата представления на самом Палме, который использует
32 битное целое число представляющее количество секунд, начиная с
1 января,
1904.
Типы полей
Механизм использует типы полей для определения данных. Значения
даны ниже в таблице.
Номер |
Значение |
0 |
None |
1 |
Integer |
2 |
Float |
3 |
Date |
4 |
Alpha |
5 |
Cstring |
6 |
Boolean |
7 |
Bitflag |
8 |
RepeatEvent |
© 2003 Palmomania
Не допускается прямое копирование
материала, разрешается публикация с разрешения автора и указанием источника
материала.
|