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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

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

Message 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"
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

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

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message par falsam »

Falsam n'aime pas XML 😁
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

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

Message 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:
Image
Image
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

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

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

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

Message 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..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

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

Message 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.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

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

Message par Shadow »

Merci pour vos réponses, jvé trouver une autre solution je pense.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

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

Message 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.
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message par Micoute »

Tu as raison blendman et en plus il y a Komposer qu fait très bien ce travail.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre