Dans DS Weather Report et dans Treasures of Gaia, j'utilise le même format de base de données, qui est en fait un format perso. Dans un fichier texte, j'ai sur chaque ligne les informations relatives à une ville (code, nom, latitude, longitude, etc.), en stockant les villes par ordre alphabétique, pays après pays.
Et comme j'ai besoin dans mon logiciel de trouver rapidement les villes qui qui correspondent à tel ou tel pays et qui commencent par telle ou telle lettre, j'ai au début du fichier une "table des matières" qui me dit, pour chaque pays, à quelle ligne dans le fichier commencent les villes du pays commençant par la lettre "A", puis celles commençant par la lettre "B", etc. De plus, j'ai aussi au début du fichier le nombre de pays et le nombre total de villes.
Ensuite, au lancement de mon programme sur DS, je charge ce fichier dans des structures de données qui ressemblent à la structuration du fichier (une liste de pays, chacun possédant sa liste de villes et une table des matières permettant de retrouver rapidement les villes commençant par telle ou telle lettre dans la liste de villes)
Bref, en procédant ainsi avec cette table des matières, je peux à la fois charger plus vite mon fichier et en ranger le contenu dans les structures appropriées parce que dans son en-tête j'ai en quelque sorte précalculé des informations (la position des villes des pays dans le fichier), et d'autre part lors de l'utilisation du logiciel je peux plus rapidement accéder aux informations qui m'intéressent.
Il y aurait d'autres techniques à utiliser, table de hashage et compagnie, utilisées par les véritables bases de données, mais l'idée est là : avoir un moyen de trouver rapidement l'information voulue dans ta "base".
Dernière remarque sur ma technique : évidemment, je ne me suis pas amusé à écrire à la main les informations de la table des matières (dans DS Weather, il y a 3347 villes de 53 pays), j'ai donc en fait sur PC un fichier texte qui contient mes données "brutes", les villes rangées en vrac, sans ordre alphabétique, pas rangées par pays, et j'ai écrit un programme que je lance sur PC qui analyse ce fichier et écrit automatiquement le fichier tout propre avec table des matières qui sera utilisé sur la DS.
Donc pour conclure sur tout ça, mon conseil est le suivant :
1) Soit tu utilises un véritable format de base de données, mais - à ma connaissance - il n'y a pas de homebrew sur DS utilisant de telles bases. Il faudrait donc soit écrire toi même le code permettant de gérer ce format (tu vas y passer du temps !), soit trouver un code source existant et le porter sur DS.
2) L'autre solution : tu fais ton format perso. Et pour ça, je te conseille moi aussi le XML, qui a pour avantage de te permettre de rajouter ou d'enlever facilement des champs si tu te rend compte par la suite que tu en as besoin dans ta base de données. Dans ton programme, tu pourras alors uiliser TinyXML - ou autre - pour lire ce fichier et remplir tes structures de données. C'est d'ailleurs ainsi que je procèderai pour mes futurs programmes utilisant des bases de données.
Au pire, si tu trouves que le XML prend de la place (c'est du texte, avec des balises), tu peux faire un peu comme moi : écrire une "moulinette" sur PC qui va analyser ton fichier XML et écrire un fichier au format plus compact correspondant exactement à ce que tu souhaites. En tout cas, l'important c'est d'avoir à la base le fichier XML propre, auquel tu rajoutes tes données, tu en tire ensuite le format que tu souhaites.
Voilou. Tes idées de projets me semblent intéressantes : la DS n'est pas qu'une console de gamers, et je la vois aussi, grâce à son écran tactile, comme le périphérique idéal pour ce type d'application axé sur la consultation d'une base de données bien spécifique.
