Page 2 sur 2

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 0:18
par boddhi
Il n'y a pas de solution unique et chacun fait en fonction de ses habitudes.
Pour un tel but, pour ma part, je m'orienterais vers une arborescence construite dans ce genre :
<FichiersAide>
    <Fonction Nom="Fonction1" Fichier="Fonction1.txt"/>
    <Fonction Nom="Fonction2" Fichier="Fonction2.txt"/>
    <Fonction Nom="Fonction2" Fichier="Fonction2.txt"/>
    ...
</FichiersAide>
ou
<FichiersAide>
    <Fonction Nom="Fonction1">Fonction1.txt</Fonction>
    <Fonction Nom="Fonction2">Fonction2.txt</Fonction>
    <Fonction Nom="Fonction3">Fonction3.txt</Fonction>
    ...
</FichiersAide>
Toutefois, si le nombre de fonctions est connu d'avance et que le nom de fichier d'aide respecte toujours la même nomenclature, il y a certainement d'autres solutions à envisager que de faire appel à du XML.

Ton programme a-t-il réellement besoin de faire appel à un fichier externe pour fonctionner ?
Le fichier XML créé fera-t-il l'objet d' ajouts/modifications ultérieurs ?
Ce sont les réponses à ces deux questions qui te permettront de t'orienter vers la "meilleure" solution...
Si c'est non à ces deux questions, pourquoi ne pas envisager une simple List() qui contiendrait le nom des fonctions à partir duquel tu "construirais" le nom de ton fichier.
Quelque chose du genre :

Code : Tout sélectionner

NewList Fonctions.s()
AddElement(Fonctions())
Fonctions()="Fonction1"
FichierAide.s=Fonctions()+".txt"

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 19:22
par Shadow
Merci @boddhi,

Je voulais apprendre le xml, et même pourquoi pas faire un programme pour simplifier tous ça.
C'est l'idée de quelqu'un d'utiliser le xml pour faire une aide.

Le soucis c'est que l'aide des fonctions est dans des fichiers txt et que
la mise en page n'est respecter que ici dans ces fichiers.

On va bien trouver une solution j'imagine.
Mais ici je ne trouvais pas d'aide et d'exemple sur le xml, un bon tuto serais une bonne idée à faire.
Falsam sais bien faire les tuto lui.

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 19:37
par falsam
Falsam n'aime pas XML 😁

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 20:15
par TazNormand
Salut

@Shadow : peut-être aurais-tu intérêt à stocker le contenu de tes fichiers d'aides dans un fichier XML et gérer les mises en formes via XSL

mais bon courage :lol:

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 20:37
par Shadow
TazNormand a écrit : mer. 22/mars/2023 20:15 Salut

@Shadow : peut-être aurais-tu intérêt à stocker le contenu de tes fichiers d'aides dans un fichier XML et gérer les mises en formes via XSL

mais bon courage :lol:
Tu veux ma mort toi c'est pas possible :mrgreen:
falsam a écrit : mer. 22/mars/2023 19:37 Falsam n'aime pas XML
Ouais je comprends, une horreur ce truc.

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 20:59
par Ar-S
Je ne sais pas ce que tu souhaites faire avec xml mais pour le stockage de données y'a tout de même plein de solutions en pb. Tu galères avec une, essaye en une autre.
- XML -> donc personne n'a l'air fan
- JSON -> Falsam t'a montré un exemple. C'est très utilisé. Moi je déteste cette syntaxe.
- Sqlite -> base de donnée très connue aussi. Si j'ai à stocker des trucs genre carnet d'adresse avec sous classement j'opte directe pour ça
- Fichier pref -> Oui PB a son fichier pref qui permet de créer des groupes etc. Trés simple d'utilisation.
- Fichier perso... Tu peux très bien inventer ta méthode de stockage à toi. Dans un simple fichier séparé par des symboles
(ex : pour une association avec : rôle;sexe;prenom;nom;age)
Président;homme;bob;moran;42
Comptable;femme;xena;laguerriere;38
Membre;homme;billy;labanlieu;26
Membre;femme;josephine;angegardien;26)

Il te suffit en PB de lire ça ligne à ligne et avec du stringfield de mapper tout ça..

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : mer. 22/mars/2023 22:26
par boddhi
@Shadow

Comme déjà dit par moi et par d'autres, je ne sais pas si le XMl est vraiment approprié à ton besoin, mais voilà grosso modo, comment fonctionne le XML. (Je n'ai pas le temps de faire un tuto)
Pour bien appréhender le XML, il te faut tout d'abord maîtriser deux notions : Celle d'arborescence et celle de récursivité (même si cette dernière n'est pas obligatoire pour utiliser du XML, elle est souvent nécessaire pour la lecture des noeuds)

• L'arborescence :
On peut s'imager une arborescence XML exactement comme un disque dur.
Ce disque dur possède une racine et une seule (le root) qui contient l'ensemble de ce qui sera stocké dedans. Un arbre XML, c'est pareil. Il DOIT avoir UNE ET UNE SEULE racine sous la forme
<NomDeLaRacine>
</NomDeLaRacine>
C'est le noeud parent de tous les autres noeuds parents et enfants.
Ensuite, tout comme un disque dur, tu organises son contenu comme tu le souhaites.
Tu peux créer/avoir des noeuds enfants qui seront des noeuds parents à leur tour. C'est l'équivalent des répertoires, sous-répertoires,sous-sous-répertoires, etc.
Et/ou (ne) créer/avoir (que) des noeuds enfants. C'est l'équivalent des fichiers.
Si le noeud racine est de niveau 0, ses noeuds enfants seront de niveau 1, les enfants de ses noeuds enfants seront de niveau 2 et ainsi de suite...
Tous les sous-noeuds parents et enfants peuvent aussi avoir ou non des attributs. Vu ton code précédent, je pense que ce point-là est acquis pour toi !

• La lecture :
C'est le même principe que la lecture des dossiers/fichiers d'un disque dur ou d'un répertoire.
Il te faut d'abord déterminer si tu examines uniquement les noeuds-enfants de niveau 1 ou si tu dois aussi examiner des noeuds à la hiérarchie plus basse.
Dans le 2e cas, il conviendra, par souci de simplicité et d'efficacité, d'écrire une procédure récursive pour gérer la lecture de ton arbre XML !
Dans le 1er cas, un simple While...Wend suffira.
Donc, Tu références d'abord le noeud racine et ensuite tu énumères les noeuds enfants (Niveau 1) du noeud principal.
Pour chacun d'eux, tu lis les attributs s'il y en a et si besoin est. Si tu souhaites éventuellement analyser les noeuds-enfants (Niveau 2) diu noeud en cours, tu rappelles ta procédure en récursif et hop, on recommence comme au début de cette ligne : Analyse des attributs et rappel de la procédure en récursif pour les noeuds-enfants (Niveau 3) et ainsi de suite.

Très franchement, avec un peu de patience et de tâtonnement, l'exemple fourni dans l'aide (https://www.purebasic.com/french/docume ... ml.pb.html) permet vraiment d'en comprendre le principe.

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : jeu. 23/mars/2023 18:00
par Shadow
Merci pour vos réponses, jvé trouver une autre solution je pense.

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : dim. 26/mars/2023 11:26
par blendman
Je cherche a faire un fichier d'aide avec des fichier txt ou chaque fichier a pour nom le nom de la fonction et à l'intérieur est une aide pour la fonction.
On m'as conseillé le xml...
Et pourquoi pas faire ça en html ?
Je vois beaucoup ça dans les fichier d'aide des logiciels par exemple.
ça me semble plus facile que du xml.
Et tu peux facilement faire une sorte d'exploreur (avec du JS), il y a plein d'exemples sur le net pour faire ça.

Re: Comment créer un fichier XML avec purebasic et ajouter des parents et des enfants ?

Publié : dim. 26/mars/2023 11:53
par Micoute
Tu as raison blendman et en plus il y a Komposer qu fait très bien ce travail.