Introduction
Les fichiers de format dBase III+ sont excessivement primitive mais très répandu sur les vieux systèmes et souvent supporté par les concurrents comme Clipper, FoxPro, xBase,... Il proviennent à l'origine du logiciel du même nom, soit dBASE.
Structure d'entête du fichier
Voici tout d'abord la structure d'en-tête :
Déplacement (Hexadécimal) | Taille | Description |
---|---|---|
0000h | 1 octet | Ce champs permet d'indiquer le type d'en-tête |
0001h | 1 octet | Ce champs permet d'indiquer l'année |
0002h | 1 octet | Ce champs permet d'indiquer le mois |
0003h | 1 octet | Ce champs permet d'indiquer le jour |
0004h | 1 double mot | Ce champs permet d'indiquer le nombre d'enregistrement que contient la table |
0008h | 1 mot | Ce champs permet d'indiquer la taille de l'entête |
000Ah | 1 mot | Ce champs permet d'indiquer la taille d'un enregistrement |
000Ch | 20 octets | Ce champs est réservés |
Structure du corps du fichier
Voici la structure des champs suivants immédiatement l'entête et elle se termine lorsque le premier caractère de cette enregistrement à la valeur ASCII 13 :
Déplacement (Hexadécimal) | Taille | Description |
---|---|---|
0000h | 11 octet | Ce champ permet d'indiquer le nom du champs |
000Bh | 1 octet | Ce champ permet d'indiquer le type de champs |
000Ch | 1 mot | Ce champ permet d'indiquer le séparateur 1 |
000Eh | 1 mot | Ce champ permet d'indiquer le séparateur 2 |
0010h | 1 octet | Ce champ permet d'indiquer la largeur |
0011h | 1 octet | Ce champ permet d'indiquer le nombre de décimal |
0012h | 14 octets | Ce champ est réservés |
Les enregistrements suivent après les champs. Et on peut donc comprendre quel la structure général est la suivante :
Description |
---|
Entête de la table de base de données |
Champs de la table de base de données |
Enregistrement de la table de la base de données |
Remarques
- Le langage de programmation PHP supporte, parmi ses modules, plusieurs fonctions permettant de manipuler ce type de base de données. Ainsi, les fonctions permettant ces manipulations sont : DBASE_ADD_RECORD, DBASE_CLOSE, DBASE_CREATE, DBASE_DELETE_RECORD, DBASE_GET_RECORD, DBASE_GET_RECORD_WITH_NAMES, DBASE_NUMFIELDS, DBASE_NUMRECORDS, DBASE_OPEN, DBASE_PACK, DBASE_REPLACE_RECORD,...
- Le langage de programmation Perl offre plusieurs modules supportant le format de base de données de dBase, comme le CAM::DBF ou si vous préférez passer par l'ODBC avec les modules «DBI» et «DBD::ODBC».
- Le langage de programmation Python permet de lire et d'écrire des fichiers dBase en utilisant le module «dbfpy» créé par Jeff Kunce et modifier par la suite par Hans Fiby.
- Le langage de programmation Delphi offre un certain support de ce format de base de données à l'aide du BDE. Si cette alternative ne vous plait pas, vous pouvez utiliser le projet open source du nom de TDBF sous licence LGPL des auteurs Micha Nelissen et Pascal Ganaye.
- Le langage de programmation Turbo Pascal offre deux archives de paquet offrant la possibilité de manipuler la base de données de dBase : «DBASEPAS.ZIP» de l'auteur Steve O'Leary et «DBFVIEW.ZIP» de Avonture Christophe (AVC Software).
Code source
Voici des exemples de code source d'utilitaires pour manipuler les .DBF :
Lien | Langage de programmation | Description | Projet | Syntaxe |
---|---|---|---|---|
DBF2C.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format C. | Corail | DBF2C |
DBF2CS.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format C#. | Corail | DBF2CS |
DBF2CSP.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format CSP (C Server Pages). | Corail | DBF2CSP |
DBF2CSV.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format CSV. | Corail | DBF2CSV |
DBF2HTML.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format HTML. | Corail | DBF2HTML |
DBF2JSON.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format JSON. | Corail | DBF2JSON |
DBF2JS.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format JavaScript. | Corail | DBF2JS |
DBF2PAS.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format Pascal. | Corail | DBF2PAS |
DBF2PHP.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format PHP. | Corail | DBF2PHP |
DBF2PSP.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format PSP (Pascal Server Pages). | Corail | DBF2PSP |
DBF2SQL.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format SQL. | Corail | DBF2SQL |
DBF2XML.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format XML. | Corail | DBF2XML |
SQL2DBF.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier SQL en DBF. | Corail | SQL2DBF |
Voir également
Langage de programmation - dBASE - Accueil
Langage de programmation - dBASE - Référence de commandes et de fonctions - «DBF»
Logiciel - Visual dBASE - Présentation du logiciel