The KDE addressbook
===================

The format that kab uses is plain ASCII, written by an QConfigDB object.

In general, the QConfigDB class  provides an easy way to read and
write hierarchical structured files storing data of basic C++ data
types. The files may be edited manually if the syntax is not
violated. 

kab handles address book entries. Each entry is meant to represent a
person. Thus, for each entry, it is possible to store more than one
address (like home or business addresses). 

An addressbook database file contains two sections, one to store the
users entries, called "entries", and one to store the configuration,
called "config". Every subsection of the "entries" section is one
entry, containing 
- a section "addresses", where in turn each subsection is one address
related to the person
- a number of key-value pairs storing data of the person.

An example entry could look like this:

  [15]
    # subsections:
    [addresses]
      # subsections:
      [1]
        # key-value-pairs:
        address="..."
        country=""
        deliverylabel=""
        headline="street address"
        org=""
        orgsubunit=""
        orgunit=""
        position=""
        state=""
        town=""
        zip=""
      [END 1]
      [2]
        # key-value-pairs:
        address="..."
        country=""
        deliverylabel=""
        headline="business address"
        org=""
        orgsubunit=""
        orgunit=""
        position=""
        state=""
        town=""
        zip=""
      [END 2]
    [END addresses]
    # key-value-pairs:
    URLs="http://www.kde.org\e"
    birthday="0, 0, 0"
    comment=""
    custom=""
    emails="kde-devel@kde.org\ekde-announce@lists.netcentral.net\e"
    firstname=""
    fn="KDE Mailing-Listen"
    keywords=""
    lastname=""
    middlename=""
    nameprefix=""
    rank=""
    talk=""
    telephone=""
    title=""
    user1=""
    user2=""
    user3=""
    user4=""
  [END 15]

To get a overview of the meanings of the fields, just have a look at
addressbook.h. If you plan to access kab databases, you should use the
kab API that is defined in kabapi.h and link libkabs.so to your
application. (read README.KABAPI). 

                                                   Mirko Boehm, Mai 2001.
