Table of Contents
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.
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.
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[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 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.
Commande | Format | Description |
---|---|---|
type | type "format de la base" | Défini le nom du format de la base (DB, JFile3, MobileDB,...) seul DB est bien supporté. |
title | title "nom de la base" | Défini le nom de la base |
field | field "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. |
view | view "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. |
option | option type <on|off> | Décrit une option de la base. Les types sont: backup, readonly , gfind. |
extended | extended <on|off> | Le fichier CSV est au format étendu ou non. |
quoted | quoted <on|off> | Les champs contenant du texte sont entre guillemets ou non. |
separator | separator <,|;|...> | Décrit le séparateur de champs utilisé dans le fichier CSV. Le séparateur par défaut est la virgule «, » |
format | format 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. |
csvfile | csvfile "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. |
pdbpath | pdbpath "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 champ | Description | Informations supplémentaire | Exemple |
---|---|---|---|
string | Une 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" |
integer | Un 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 |
boolean | Un booléen (case à cocher). | rien | field "Présent" boolean |
float | Un Réel. | un réel qui sera utilisé par défaut | field "Taille" float field "Prix" float 10.0 |
dâte | Une 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 |
time | Une 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âtetime | Une dâte et une heure au format informatique. | ce type n'est pas encore bien défini. Ne l'utilisez pas pour l'instant. | |
note | Un texte long. | rien | field "Note" note |
list | Une 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" |
link | Un 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 |
linked | Une 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 |
calculated | Un 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"
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:
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] 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.