Хранение информации DateBook на PC (Palm Desktop)

Форматы файлов 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 хранятся следующим образом:

  1. Строки меньше чем 255 байт хранятся с определенной длинной определенной в первом байте определителя самой строки.
  2. Нулевые строки хранятся как 0x00.
  3. Строки в 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

Не допускается прямое копирование материала, разрешается публикация с разрешения автора и указанием источника материала.

-на главную страницу-

Сайт управляется системой uCoz