Version: 0.3 - Date: 25.01.97 08:28:12

Remarks

I donīt know if my english is good enough to make the text understandable for everyone... If you have any questions, you can send me a mail.

In the folowing text I use the following variable-types:

CString
a CString is a String preceeded by itīs length if stored to a file. If itīs a short string, the length is stored as a single byte, if the string is longer than 255 chars, the first byte is 0xff and is followed by the string length (short). A String-length of zero is stored in the file.

Jump to: Memopad - Todolist - Addressbook - Datebook - USERS.DAT - Changes

Memopad

The Memopad is stored as follows:
type descr.
1 General Header -
2 Show-Header -
3 Categories -
4 Table-description (1,1,1,5,6,1)
5 long number of entries (*6)
6 .. (P.5 / 6) Memopad-Entry -
Note that the number of enries is multiplied with the number of fields per record (in the case of Memopad is this 6)!

Memopad-Entry

a Memopad-Entry is stored as follows:
type descr.
1 long Field-Type (1)
2 long record id
3 long Field-Type (1)
4 long status flag
5 long Field-Type (1)
6 long position
7 long Field-Type (5)
8 long always zero
9 CString Memo-Text
10 long Field-Type (6)
11 long flag: 1 if private, 0 if not
12 long Field-Type (1)
13 long category number

Todolist-entries

The Todolist-entries are stored as follows:
type descr.
1 General Header -
2 Show-Header -
3 Categories -
4 Table-description (1,1,1,5,3,6,1,6,1,5)
5 long number of entries (*10)
6 .. (P.5 / 10) Todo-Entry -

Todo-Entry

a Todo-Entry is stored as follows:
type descr.
1 long Field-Type (1)
long record-id
long Field-Type (1)
long status
long Field-Type (1)
long position
long Field-Type (5)
long always zero
CString description
long Field-Type (3)
time_t due-date
long Field-Type (6)
completed flag: 1 if completed, 0 if not.
long Field-Type (1)
long priority
long Field-Type (6)
long private
long Field-Type (1)
long Category
long Field-Type (5)
long always zero
CString Note

Addressbook-entries

The Addressbook-entries are stored as follows:
type descr.
1 General Header -
2 CString User-Defined 1
3 CString User-Defined 2
4 CString User-Defined 3
5 CString User-Defined 4
6 Show-Header -
7 Categories -
8 Table-description (1,1,1,5,5,5,5,1,5,1,5,1,5,1,5,1,5,5,5,5,5,5,5,6,1,5,5,5,5,1)
9 long number of entries (*30)
10 .. (P.9 / 30) Addressbook-Entry -

Addressbook-Entry

a Addressbook-Entry is stored as follows:
type descr.
1 long Field-Type (1)
long record-id
long Field-Type (1)
long status-field
long Field-Type (1)
long position
long Field-Type (5)
long always zero
CString Name
long Field-Type (5)
long always zero
CString First
long Field-Type (5)
long always zero
CString Title
long Field-Type (5)
long always zero
CString Company
long Field-Type (1)
long Phone 1 Label ID
long Field-Type (5)
long always zero
CString Phone 1 String
long Field-Type (1)
long Phone 2 Label ID
long Field-Type (5)
long always zero
CString Phone 2 String
long Field-Type (1)
long Phone 3 Label ID
long Field-Type (5)
long always zero
CString Phone 3 String
long Field-Type (1)
long Phone 4 Label ID
long Field-Type (5)
long always zero
CString Phone 4 String
long Field-Type (1)
long Phone 5 Label ID
long Field-Type (5)
long always zero
CString Phone 5 String
long Field-Type (5)
long always zero
CString Address
long Field-Type (5)
long always zero
CString City
long Field-Type (5)
long always zero
CString State
long Field-Type (5)
long always zero
CString Zip-Code
long Field-Type (5)
long always zero
CString Country
long Field-Type (5)
long always zero
CString Note
long Field-Type (6)
long private
long Field-Type (1)
long Category
long Field-Type (5)
long always zero
CString Custom 1
long Field-Type (5)
long always zero
CString Custom 2
long Field-Type (5)
long always zero
CString Custom 3
long Field-Type (5)
long always zero
CString Custom 4
long Field-Type (1)
long display Phone

Datebook-Entries

The Datebook-entries are stored as follows:
type descr.
1 General Header -
2 Show-Header -
3 Categories -
4 Table-description (1,1,1,3,1,5,1,5,6,6,1,6,1,1,8)
5 long number of entries (*15)
6 .. (P.5 / 15) Datebook-Entry -

Datebook-Entry

a Memopad-Entry is stored as follows:
type descr.
1 long Field-Type (1)
long record-id
1 long Field-Type (1)
long status-field
1 long Field-Type (1)
long position
1 long Field-Type (3)
time_t Start-time
1 long Field-Type (1)
time_t End-Time
1 long Field-Type (5)
1 long always zero
CString description
1 long Field-Type (1)
long Duration
1 long Field-Type (5)
1 long always zero
CString note
1 long Field-Type (6)
long untimed
1 long Field-Type (6)
long private
1 long Field-Type (1)
long category
1 long Field-Type (6)
long alarm-set?
1 long Field-Type (1)
long Alarm-Adv. Time (units)
1 long Field-Type (1)
long Alarm Adv. Type (0-Minutes / 1-Hours / 2-Days)
1 long Field-Type (8)
RepeatEvent Repeat-Event

Tag

All files have a tag:
file tag
Memopad 0x00 0x01 0x50 0x4d (MP10)
Todolist 0x00 0x01 0x42 0x41 (AB10) (Bug?)
Addressbook 0x00 0x01 0x42 0x41 (AB10)
Datebook 0x00 0x01 0x42 0x44 (DB10)

General Header

All of the files have a general header as follows:
type descr.
1 CString The filename of the actual file

Show-Header

The Show-Header is a Header describing the currently shown category, entry, ... on the Desktop.
type descr.
1 CString Show-Header (description follows - different for every file)

Categories

The categories available for the current file-type. First there is a 'main'-Header:
type descr.
1 long unknown
2 long number of Categories
Afterwards there is a seperate entry for all of the available categories (2nd entry in th e previous table):
type descr.
1 long index
2 long id
3 long name dirty
4 CString Long name of category
5 CString Short name of Category

Table-description

A description of the fields stored in the file:
type descr.
1 long unknown
2 long number of fields
3 long unknown
4 long unknown
5 long unknown
6 short number of fields
7 - ... short Field-Type

Field-Type

The following field-types are defined:
number descr.
0 None
1 Integer
2 Float
3 Date
4 Alpha
5 CString
6 Bool
7 BitFlag
8 RepeatEvent

Repeat-Event

The Repeat-Event is defined as follows:
number descr.
1 long zero, if no repeat-event
OR
1 long

USERS.DAT

The USERS.DAT is stored as follows:
type descr.
1 short count of users
2 14 Bytes garbage from Visual C++-
3 User-Entry repeated count (pos.1) times

UserEntry

The UserEntry is stored as follows:
type descr.
1 CString Long Name of User
2 CString Short Name of User
3 short 1, if this is the active User
4 7 * short unknown

Changes

V0.2 -> V0.3

* Some of the CStrings in datebook are preceeded by an long that is always zero. (Thanks to Matthias Eichstaedt) * The name of USER.DAT should have been USERS.DAT (Thanks to ..?)