IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

représenter un array tridimensionel dans un TXMLdocument.


Sujet :

Delphi

  1. #1
    Membre éclairé Avatar de user 56gt8
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Par défaut représenter un array tridimensionel dans un TXMLdocument.
    Bonjour , je recherche de l'aide pour représenter un array dans un document xml.L'array prend trop de place en mémoire, le xml semble être une solution.

    j'ai comme variable: Attributes: array[0..5000] of array [0..500] of array [0..250] of boolean.

    Il faudrait , à la création de l'apps, automatiser la création du document via 3 boucles itératives imbriquées.
    Voilà , je recherche des exemples pour celà.Je précise que je connais pas du tout les fonctionalités XML , les classes, les méthodes etc.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Pour le XML, voir le TXMLDocument

    sinon, pour la structure, tu peux la voir totalement à plat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <TABLEAU X=5001 Y=501 Z=251>
      <ITEM X=0 Y=0 Z=0 VALUE=TRUE/>
      <ITEM X=0 Y=0 Z=1 VALUE=FALSE/>
      ...
    </TABLEAU>
    attention 0..5000 c'est 5001 item !
    bon, je ne suis pas très à l'aise non plus avec le XMLDocument, que je trouve compliqué dans le parcours des noeuds, je ne retrouve un des mes codes ou j'avais trouvé une forme plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
          for i := 0 to XML.DocumentElement.ChildNodes.Count - 1 do
          begin
             ANode := xmlTransformation.node.ChildNodes.First.ChildNodes[i];
             if ANode.NodeName = 'TABLEAU' then
             begin
                X := ANode.Attributes['X']            
                Y := ANode.Attributes['Y'] 
                Z := ANode.Attributes['Z']
                SelLength(Tableau, X);
                for iX := 0 to X-1 do
                begin
                  SelLength(Tableau[iX], Y);
                  for iY := 0 to Y-1 do
                  begin
                    SelLength(Tableau[iX, iY], Z);
                  end;
                end;
             end;
          end;
    pour remplir ton tableau, c'est un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
          for i := 0 to ANode.ChildNodes.Count - 1 do
          begin
             AChildNode := ANode.ChildNodes.First.ChildNodes[i];
             if AChildNode.NodeName = 'ITEM' then
             begin
                X := AChildNode.Attributes['X']            
                Y := AChildNode.Attributes['Y'] 
                Z := AChildNode.Attributes['Z']
                Tableau[X, Y, Z] := StrToBool(AChildNode.Attributes['VALUE']);
             end;
          end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé Avatar de user 56gt8
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Par défaut
    Merci , je vais essayer d'adapter ca une fois familiarisé avec TXMldoc.
    En fait dans mon cas X représenterait un noeud d'un TreeView,
    Y l'indice des items d'une listview et Z les attributs des items de la liste.
    Si quelqu'un voit une meilleurs solution que le xml je suis preneur.
    Comme il s'agit d'un logiciel d'indexation il faut que les données puissent être facilement retrouvées/recherchées.

Discussions similaires

  1. Comment représenter une règle métier dans un MCD ?
    Par niconoe dans le forum Schéma
    Réponses: 4
    Dernier message: 11/10/2007, 14h33
  2. [PHP-JS] Création array javascript dans un while en php
    Par D_ident_1 dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2007, 11h16
  3. comment représenter couleur et taille dans BDD
    Par calitom dans le forum Schéma
    Réponses: 3
    Dernier message: 14/11/2006, 13h34
  4. Représentation d'une sphère dans un plan...
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 20/01/2006, 17h05
  5. Problème avec XML.Clear dans un TXMLDocument
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/01/2005, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo