Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
666 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Probeme] Algorithmique et structure de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Probeme] Algorithmique et structure de données

n°1077327
AsTro
Posté le 10-05-2005 à 10:17:27  profilanswer
 

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.

mood
Publicité
Posté le 10-05-2005 à 10:17:27  profilanswer
 

n°1077335
0x90
Posté le 10-05-2005 à 10:24:18  profilanswer
 

Tu veut jouer uniquement sur le programme ou alors modifier la structure du fichier de config est envisageable ?

n°1077344
AsTro
Posté le 10-05-2005 à 10:28:21  profilanswer
 

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  :non: malheureusement.

n°1077363
0x90
Posté le 10-05-2005 à 10:36:06  profilanswer
 

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.

n°1077810
bjone
Insert booze to continue
Posté le 10-05-2005 à 14:25:04  profilanswer
 

AsTro a écrit :

Les 2 sont envisageables, mais il me faut un fichier de config simple à éditer à la main donc XML  :non: malheureusement.


 
<Config
StartMin=true
Scale=6
Xoff=20.5
DbgFile="c:\yop"
/>
 
c'est pas simple à éditer à la main ?

n°1077816
bjone
Insert booze to continue
Posté le 10-05-2005 à 14:28:07  profilanswer
 

0x90 a écrit :

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.


 
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.

n°1077822
bjone
Insert booze to continue
Posté le 10-05-2005 à 14:31:23  profilanswer
 

tu prends un truc comme TinyXml qui est un parseur Xml super tolérant, et tu peux écrire des trucs comme ça:
 
 

Citation :


<! Paramètres VideoConfig:
 
 adapter: numéro de l'adaptateur graphique à utiliser  
  adapter=1
   
 devtype: type d'interface (HAL: matérielle ou REF: renderer microsoft de référence)
  devtype=ref
 
 fullscreen_resolution: résolution plein écran
  fullscreen_resolution=1280x1024
   
 fullscreen_format: format backbuffer, on peut spécifier soit le nombre de bpp,  
      et le moteur choisira tout seul, soit la répartition des bits  
      par canal.      
  fullscreen_format=32  
  fullscreen_format=24
  fullscreen_format=16  
  fullscreen_format=10:10:10  
  fullscreen_format=8:8:8  
  fullscreen_format=5:6:5
  fullscreen_format=5:5:5
   
 fullscreen: démarrage plein écran (booléen)  
  fullscreen=true
   
 windowed_resolution: résolution en mode fenêtré
  windowed_resolution=800x600
   
 multisample: niveau d'anti-aliasing (de 2 à 16)
  multisample=6
   
 dither: tramage, utile en mode 16bpp (booléen)
  dither=true  
   
 aspectratio: rapport d'aspect du moniteur
  aspectratio=1.33
  aspectratio=4:3
  aspectratio=16:9
/>
 
<VideoConfig adapter=0 fullscreen_resolution=1024x768 fullscreen=false fullscreen_format=32 windowed_resolution=800x600 />
 
<! Maximum quality: mixrate=48000 mixer=fpu>
<! Compatilibity Mode: output=waveOut>
<AudioConfig />
 
<DynamicEnvCube enable=true size=512 period=0.1 format=8:8:8 mask=-1 />
 
<EntityList file="scene\entities.xml" />
 
<PlanetList file="scene\planets.xml" />
 
<Camera pos="0,0,150"/>
 
<!Camera pos="200100,0,150" />
 
<Sounds
spawn="sounds\spawn.wav"
copy="sounds\shlick_copy.wav"
delete="sounds\shlick.wav"
/>
 


 

Citation :


<Entity model="models/Naboo_fighter.BML" pos="100,0,0" />
 
<Entity model="models/SkyLab.BML" pos="0,100,0">
        <Sound file="Sounds\machine1.wav"  
                inner_angle="60°"
                inner_volume="1"
                outer_angle="100°"
                outer_volume="0.3"
                cone_vector="0,0,1"  
        />
 
        <Entity model="models/Blimp.BML" pos="0,0,-50" />
</Entity>
 


Message édité par bjone le 10-05-2005 à 14:38:53
n°1077968
0x90
Posté le 10-05-2005 à 15:47:45  profilanswer
 

bjone a écrit :

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.


 
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 )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Probeme] Algorithmique et structure de données

 

Sujets relatifs
recuperer des donnees dans fichier .dbEcriture données provenant d'une boucle
Récupération des données d'une liste d'un formulaireProblème de stockage de données d'un formulaire...
[VC++] Affecter 1 adresse connue au pointeur d'1 structureclasser par ordre alphabétique des données
Ecriture de vb-->mysql=pb de format donnéesFermeture d'un projet et Formatage des données
fonction qui renvoie un tableau de donnéesPb de récupération de données ds un champ text
Plus de sujets relatifs à : [Probeme] Algorithmique et structure de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR