Chapter 12. Palm DB Tools

Table of Contents

Les applications en ligne de commande
L'application graphique.
Les modèles de documents.
Installation manuelle.

Palm DB Tools ou sous un nom plus court pdbtools est un ensemble d'applications et de fichiers qui permettent de fabriquer des base de données pour Pilot-DB à partir de différents fichiers. Ces outils sont distribués sous license GPL avec les sources qui sont compilables avec GCC et Visual C++. Vous trouverez donc une version binaire pour Windows, et les sources pour être compilée sur Linux et MacOS X.

Note

Il faut d'abord compiler la dernière version de GCC 3.x.x pour MacOS X, GCC 2.95.x suffit sur Linux

Actuellement vous trouverez les applications pdb2csv.exe, csv2pdb.exe et qdb_converter.exe ainsi que des modèles de feuilles pour Excel et StarOffice 5.2. Vous pouvez télécharger la dernière version depuis le site de Pilot-DB en suivant le lien vers Palm DB Tools ou directement sur le site de Palm DB Tools.

Les applications en ligne de commande

La distribution de Palm DB Tools contient deux applications en ligne de commande. Pour les utiliser il vous faut ouvrir une fenêtre terminal sous X ou une fenêtre DOS sous Windows.

pdb2csv [-i Meta_input_file] Palm_Database_input_file [CSV_output_file] Meta_output_file

csv2pdb [-i Meta_input_file] [CSV_input_file] Palm_Database_output_file

Ces deux applications permettent de transformer un fichier «base de données à plat» en fichier *.pdb et vice vers çà.

Un fichier «base de données à plat» ou CSV est un fichier texte où les données sont réparties avec un enregistrement par ligne et chaque champ est séparé par un symbol, le plus souvent une virgule ou un point virgule. Chaque ligne doit contenir le même nombre de champs, même si l'un d'entre eux est vide.

AGGH,Honiara/Henderson,,Solomon Islands,09-25S,160-03E,8,aa
AGGL,Santa Cruz,,Solomon Islands,10-42S,165-48E,23,
AGGM,Munda,,Solomon Islands,08-20S,157-16E,6,
ANAU,Nauru Apt,,Nauru,00-32S,166-55E,6,
...
   

Les données peuvent être formaté de différentes manières. Un champ texte peut être entre guillemets pour pouvoir contenir le symbol de séparations. Les symboles comme les lettres accentués sont la plus part du temps reconnus mais sur certains systèmes étrangers il est préférable d'utiliser les codes étendus[2].

"JOHN Q.","JOHN Q","Nick Cassavêtes",04/06/2002,01:55,
"L'AMOUR EXTRA LARGE","SHALLOW HAL","Peter & Bobby Farrelly",04/06/2002,01:53,
"MONSIEUR BATIGNOLE","MONSIEUR BATIGNOLE","G\xe9rard Jugnot",04/06/2002,01:38,"à voir"
"NID DE GUEPES","NID DE GUEPES","Florent Emilio Siri",04/06/2002,01:45,
   

Le fichier CSV ne contient que les données des enregistrements, hors une base Pilot-DB utilise d'autres informations, comme le type de chaque champ, le nom de la base, les différentes vues... Ces informations sont stockées dans un fichier META qui le plus souvent aura pour extension *.ifo. Ce fichier META est utilisé à plusieurs endroits. Avec csv2pdb il peut être donné en paramètre pour informer l'application de la structure de la base à créer, et comment lire le fichier CSV. Avec pdb2csv il permet en premier de décrire comment le fichier CSV devra être formaté puis il sera créé ou modifié par l'application.

CommandeFormatDescription
titletitle "nom de la base"Défini le nom de la base
fieldfield "nom du champ" type <informations>Décrit un champ, avec son nom, son type et les informations supplémentaires correspondant au type. Il doit y avoir autant de commande field que de champs dans la base et par ligne du fichier CSV. L'ordre de déclaration des champs doit respecter leur ordre dans la base.
viewview "nom de la vue" "nom d'un champ" largeur_de_la_colonne "nom du champ suivant" largeur_de_la_colonne ... Décrit une vue, avec son nom puis le nom de chaque colonne à faire apparaitre et sa largeur. Le nombre de vues peut aller de 0 à 16.
optionoption type <on|off>Décrit une option de la base. Les types sont: backup, readonly , gfind.
CommandeFormatDescription
extendedextended <on|off>Le fichier CSV est au format étendu ou non.
quotedquoted <on|off>Les champs contenant du texte sont entre guillemets ou non.
separatorseparator <,|;|...>Décrit le séparateur de champs utilisé dans le fichier CSV. Le séparateur par défaut est la virgule «, »
formatformat type "descripteur de format"Décrit le format utilisé pour les champs dâtes et heures. Le type peut être dâte, time. Le descripteur de format est une chaîne de caractères du type «%d/%m/%Y» avec «%d» pour le jour entre 1 et 31, «%m» pour le mois entre 1 et 12, «%Y» pour l'année sur 4 chiffres, «%y» pour l'année sur 2 chiffres, «%H» pour l'heure entre 0 et 24, «%M» pour les minutes entre 0 et 59.
csvfilecsvfile "chemin\vers\le\fichier.csv"Donne le chemin par défaut à utiliser pour le fichier CSV. Il permet de ne pas préciser le nom du fichier CSV lors de l'exécution de l'application. On peut mettre «csvfile stdIO» pour que le contenu du fichier CSV soit pris sur l'entrée standard ou écrit sur la sortie standard.
Type de champInformations supplémentaireExemple
stringUne chaîne de caractères qui sera la valeur par défautfield "spécimen" string "non défini"
integerun ou deux chiffres séparé par un caractère /. Le premier est la valuer par défaut, le second l'incrément à ajouter à la valeur par défaut à chaque nouvelle fiche créée.field "ID" integer 0/1
booleanrien 
floatun réel qui sera utilisé par défautfield "Prix" float 10.0
dâteune dâte par défaut écrite sur le format «%Y/%m/%d» ou «now»field "acquisition" dâte now
timeune heure par défaut écrite sur le format «%H:%M» ou «now»field "acquisition" time now
dâtetimece type n'est pas encore bien défini. Ne l'utilisez pas pour l'instant. 
noterienfield "Note" note
listune chaîne de caractères avec tous les items de la liste, sépararés par un /field "Nation" list "Angleterre/Ecosse/France/Irlande/Italie/Pays de Galles"
linkle nom de la base liée et le numéro du champ à afficher, séparés par un /field "nom" link auteurs/0
linkedle numéro du champ link et le numéro du champ à afficher, séparés par un /field "prénom" linked 2/1
calculatedle script du calculfield "Prix en euro" calculated "(* %1 6.5597)"

Exemples:

title "Airports"
field "ICAO" string
field "Location" string
field "ST" string
field "Country" string
field "Lat" string
field "Long" string
field "Elev" string
field "Notes" note
view "All Fields"  "ICAO" 30 "Location" 80 "ST" 25 "Country" 80 "Lat" 40 "Long"
40 "Elev" 40 "Notes" 80
option backup true
extended off
quoted off
format time "%H:%M"
format dâte "%m/%d/%Y"
csvfile "airports.csv"
   
title "Film"
field "titre" string
field "titre original" string
field "réalisateur" string
field "sortie" dâte
field "durée" time
field "avis" list "à ne pas rater/à voir/si on a le temps/en vidéo/jamais"
view "rapide" "titre" 80 "réalisateur" 80
option backup on
option readonly off
extended on
quoted on
separator ,
format dâte "%d/%m/%Y"
format time "%H:%M"
csvfile ".\Film.csv"
   

Les différentes manière de lancer les applications en utlisant un ou des fichier META sont:

csv2pdb -i meta.ifo data.csv database.pdb
   

pour créer un fichier database.pdb à partir d'un fichier META «meta.ifo» et d'un fichier CSV «data.csv».

csv2pdb -i meta.ifo database.pdb
   

pour créer un fichier database.pdb à partir d'un fichier META «meta.ifo», le nom du fichier CSV est donné dans le fichier META par l'instruction «csvfile».

cat data.csv | csv2pdb -i meta.ifo database.pdb
   

pour créer un fichier database.pdb à partir d'un fichier META «meta.ifo», les données de la base sont fournies par l'entrée standard. Au lieu d'utiliser cat, il est possible d'utiliser un client SQL et awk pour tirer les informations d'une base de données relationnelles.

pdb2csv database.pdb data.csv meta.ifo
   

pour créer un fichier CSV «data.csv» à partir d'un fichier Palm «database.pdb». Les informations sur la structure de la base sont enregistrées dans le fichier META «meta.ifo».

pdb2csv -i meta2.ifo database.pdb data.csv meta.ifo
   

pour créer un fichier CSV «data.csv» à partir d'un fichier Palm «database.pdb». Les informations sur la structure de la base sont enregistrées dans le fichier META «meta.ifo». Le fichier META «meta2.ifo» est le fichier qui décrira comment le fichier CSV devra être formaté, les commandes utiles sont extended, quoted, format, separator.

pdb2csv -i meta.ifo database.pdb data.csv
   

pour créer un fichier CSV «data.csv» à partir d'un fichier Palm «database.pdb». Les informations sur la structure de la base sont enregistrées dans le fichier META «meta.ifo». Le fichier META «meta.ifo» est le fichier qui décrira aussi comment le fichier CSV devra être formaté, les commandes utiles sont extended, quoted, format, separator.

pdb2csv -i meta.ifo database.pdb
   

pour créer un fichier CSV dont le nom est fourni dans le fichier META «meta.ifo» ainsi que la manière de formater ce fichier, à partir d'un fichier Palm «database.pdb». Les informations sur la structure de la base sont enregistrées dans le fichier META «meta.ifo». Les commandes utiles au fichier META sont extended, quoted, format, separator csvfile.

pdb2csv -i meta.ifo database.pdb > data.csv
   

pour sortir les données à partir d'un fichier Palm «database.pdb» sur la sortie standard. Les informations sur la structure de la base sont enregistrées dans le fichier META «meta.ifo». Le fichier META «meta.ifo» est le fichier qui décrira aussi comment le fichier CSV devra être formaté, les commandes utiles sont extended, quoted, format, separator. Le fichier META ne doit pas contenir la commande csvfile ou elle doit avoir la forme «csvfile stdIO». Il est ainsi possible de remplir une base de données relationnelles ou d'utiliser un autre format que CSV.

[3]


[2] pdb2csv

[3] Pour créer facilement un fichier META, vous crérez votre base sur votre PDA, puis vous la sauvegarderez sur votre ordinateur. Vous lancez ensuite la commande suivante dans un fenêtre DOS:

pdb2csv -i fr.ifo mabase.pdb mabase.csv mabase.ifo
    

où fr.ifo est un fichier fourni avec la distribution de Palm DB Tools, mabase.pdb est la base que vous avez sauvegardée sur votre ordinateur, et mabase.csv et mabase.ifo les fichiers qui seront créés.