Chapter 1. Palm DB Tools

Table of Contents

Les applications en ligne de commande
le fichier CSV
le fichier Meta (*.ifo)
utiliser 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 çà.

le fichier CSV

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[1].

"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 Meta (*.ifo)

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
typetype "format de la base"Défini le nom du format de la base (DB, JFile3, MobileDB,...) seul DB est bien supporté.
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.
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.
pdbpathpdbpath "chemin\vers\le\répertoire\contennant\les\bases"Donne le chemin par défaut à utiliser pour la lecture et la création des fichiers *.pdb.

Les types de champs supportés sont:

Type de champDescriptionInformations supplémentaireExemple
stringUne chaîne de caractères.Une chaîne de caractères qui sera la valeur par défaut

field "Nom" string

field "spécimen" string "non défini"

integerUn entier.un 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 "Age" integer

field "ID" integer 0/1

booleanUn booléen (case à cocher).rien

field "Présent" boolean

floatUn Réel.un réel qui sera utilisé par défaut

field "Taille" float

field "Prix" float 10.0

dâteUne dâte.une dâte par défaut écrite sur le format «%Y/%m/%d» ou «now»

field "Naissance" dâte

field "acquisition" dâte now

field "départ" dâte 2002/06/10

timeUne heure.une heure par défaut écrite sur le format «%H:%M» ou «now»

field "Durée" time

field "acquisition" time now

field "Alarme" time 13:40

dâtetimeUne dâte et une heure au format informatique.ce type n'est pas encore bien défini. Ne l'utilisez pas pour l'instant. 
noteUn texte long.rien

field "Note" note

listUne liste de choix.une 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"

linkUn lien vers un enregistrement d'une autre base.le nom de la base liée et le numéro du champ à afficher, séparés par un /

field "nom" link auteurs/0

linkedUne extension d'un lien (Link).le numéro du champ link et le numéro du champ à afficher, séparés par un /

field "prénom" linked 2/1

calculatedUn résultat d'un calcul.le script du calcul

field "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"
    

utiliser les applications en ligne de commande

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 ajouter des données d'un fichier CSV dans un fichier pdb déjà existant, i est possible de merger les données de différentes manières:

  • par remplacement des données: les données de la base (*.pdb) sont remplacées par celles du fichier CSV.
  • par ajout des données: les données du fichiers CSV sont ajoutées à la fin de celle de la base (*.pdb).
  • par ajout des nouvelles données: les données du fichiers CSV sont ajoutées à la fin de celle de la base (*.pdb), si elles ne sont pas déjà présentes.

csv2pdb -i fr.ifo -m Rebuild data.csv database.pdb
    
csv2pdb -i fr.ifo -m Append data.csv database.pdb
    
csv2pdb -i fr.ifo -m Diff data.csv 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.

[2]


[1] pdb2csv

[2] 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.