Algorithmique et structure de données [Probeme] - Divers - Programmation
Marsh Posté le 10-05-2005 à 10:24:18
Tu veut jouer uniquement sur le programme ou alors modifier la structure du fichier de config est envisageable ?
Marsh Posté le 10-05-2005 à 10:28:21
0x90 a écrit : Tu veut jouer uniquement sur le programme ou alors modifier la structure du fichier de config est envisageable ? |
Les 2 sont envisageables, mais il me faut un fichier de config simple à éditer à la main donc XML malheureusement.
Marsh Posté le 10-05-2005 à 10:36:06
Tu peut pas demander au replisseur de fichier de les mettre proprement , kkchose du genre :
[fixed]
papy = 12
.papa1 = 154
..fils11 = bleu
..fils12 = à la carotte
.papa2 = 157
.papa3 = par envie
..fils31 = Pi
...petitfils32 = arheu !
[code]
avec soit des points, soit des espaces, soit des tabs...
on répète pas le nom du parent, le fichier est visuel, mais c'est pas chiant à tapper comme de l'XML ( sauf qu'il faut mettre sous le bon parent évidement ).
ensuite au parsage, suffit d'avoir un compteur de points, si pareil qu'avant, c'est un nouveau fils du père en cours, si un point de plus, le père en cours devient le fils du père en cours, si un point de moins, on le père en cours devient le père du père en cours.
Marsh Posté le 10-05-2005 à 14:25:04
AsTro a écrit : Les 2 sont envisageables, mais il me faut un fichier de config simple à éditer à la main donc XML malheureusement. |
<Config
StartMin=true
Scale=6
Xoff=20.5
DbgFile="c:\yop"
/>
c'est pas simple à éditer à la main ?
Marsh Posté le 10-05-2005 à 14:28:07
0x90 a écrit : Tu peut pas demander au replisseur de fichier de les mettre proprement , kkchose du genre : |
très franchement, trop de la merde.
je suis employé dans une boite à débugger du code codé avec les pieds où le modèle général de données est foutu dans des INI ... et ça me fait chier.
Marsh Posté le 10-05-2005 à 14:31:23
tu prends un truc comme TinyXml qui est un parseur Xml super tolérant, et tu peux écrire des trucs comme ça:
Citation : |
Citation : |
Marsh Posté le 10-05-2005 à 15:47:45
bjone a écrit : très franchement, trop de la merde. |
C'était une idée ( effectivement, c'est supermauche à regarder comme ca ^^ ), y'a je sais plus quel fichier de config de je sais plus quel soft (libre) qui prends en compte l'indentation, avec des points c'est ignoble en fait, ca ressemble à rien.
Par contre, si au lieu de monter ton arbre en mémoire de manière anarchique tu utilise un bel arbre trié au fur et à mesure ( à toi de choisir dans la diversité d'arbres existants ), tu dois pouvoir réduire de bcp bcp le temps de scannage du fichier de config.
Sinon je sais pas à quoi ressemblent les données de ton fichier de config, ( selon si elles peuvent être "infinie" ou pas, si elles utilisent un set prédéfinit de clef parentes, .... ) Mais tu dois pouvoir faire kkchose à base de Hash pour retrouver rapidement ce que tu veut non ? ( plus d'infos sur le contenu du fichier de config ca aiderait à vrai dire )
Marsh Posté le 10-05-2005 à 10:17:27
Bonjour,
Je me pose un probleme sur une structure de données.
J'ai une application qui va parser un fichier de configuration. Ce fichier va en fait représenter une arborescence, c'est à dire qu'une ligne de ce fichier de configuration représentera un élément qui pourra être le père ou le fils d'un autre élément du fichier (une autre ligne). En fait la structure ressemble à un fichier XML dont les éléments seraient mélangés dans le fichier de configuration (je ne souhaite pas utiliser de fichier XML pour pouvoir ajouter un élément facilement sans avoir a ce taper un fichier XML à la main). Une ligne du fichier de config serait donc composée de l'élément lui meme et de son père direct pour le placer dans l'arbre.
Je souhaite donc charger mon fichier de configuration dans une structure arbre.
Mon probleme est que si mon fichier de config est long, comme les éléments ne sont pas ordonnés dans le fichier à chaque fois que je vais lire un nouvel élément dans le fichier, je vais etre obligé de parcourir tout les éléments déja présents dans l'arbre pour trouver son père et faire l'ajout au bon endroit. Ca va etre hyper couteux, non? mais la je ne vois pas d'autre solution pour remplir l'arbre ou quel autre structure utiliser (autre qu'un arbre) pour charger le fichier de config.
Vous en pensez quoi?
Je sais pas si j'ai été clair, si vous voulez des précisions, demandez moi.