Arborescence TXT, créer un niveau dans un niveau..[Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Arborescence TXT, créer un niveau dans un niveau..[Résolu]

Message par Kwai chang caine »

Bonjour à tous

Je cherche à me faire une interface style "modéle" de l'IDE de pure ou bien style la base de registre windows.
Avec une arborescence, des répertoires, des fichiers.

Et tout ça ecrit dans un TXT tout bete.

Quelqu'un aurait vu ce genre de code, car j'ai beau chercher j'ai pas trouvé.
Sinon pourriez vous m'indiquer quelle composants utiliser?
D'ailleur je ne connais meme pas le nom de se que je cherche si il en a un :?

Merci de votre aide
Bonne journée
Dernière modification par Kwai chang caine le mer. 26/sept./2007 15:05, modifié 5 fois.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour mon Kwai ...

J'ai rien pigé à ce que tu veux !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Pareil !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bah tu vois, dans l'IDE de pure (Je sais tu ne l'utilise plus :wink: et je ne sais pas si japbe le fait)...... a droite y'a un super mega outil que j'utilise qui permet de mettre des bouts de codes.
L'onglet s'appelle "Modéle".
Tu peux créer autant de dossier que tu veux, puis dans ces dossiers tu peux a nouveau créer d'autres dossiers etc ....
Donc un veritable arborescence comme dans un DD.

Dans chacun de ces dossiers tu peux créer un fichier dans lequel tu peux ecrire par exemple la phrase : "Mon BROSSDEN je t'aime" (c'est un exemple, hein :lol:)

Et voila, le tour "il est joué" :
Exemple:

Dans cette appli je créé le répertoire "Purebasic"
Dans ce répertoire, je créé le répertoire "Mes copains"
Dans ce répertoire, je créé le "fichier" virtuel "BROSSDEN"
Dans ce fichier virtuel j'écrit : "Mon BROSSDEN je t'aime"

Pour obtenir à nouveau mon secret d'amour (que personne ne sait :D)
je tape dans mon pseudo explorateur, le chemin :
PureBasic/Mescopains/Brossden

Et la PAF, il s'inscrit mon secret "Mon BROSSDEN je t'aime".

Magique !!!

Image

Mais voila, cerise sur le concombre, je voudrais que tout s'ecrive lisiblement dans un TXT, comme le fichier template de pure d'ailleurs :D

Image

J'espere que vous avez compris ???

Je sais, y'a rien de tres compliqué dans tout ça, car apparement FRED a décalé d'un caractere pour créer un répertoire et mis une entete de répertoire.
Mais je voulais savoir, si vous auriez d'autres idées, surtout dans le cas ou y'aurais des millions de phrases "Mon BROSSDEN je t'aime" à gérer :D

Et surtout comment gérer ça au plus rapide, avec des liste chainées, des tableaux, directement en mémoire, etc.....
Car j'aimerais (ponpon sur le gateau) que la gestion soit le plus rapide possible, pour la sauvegarde et le chargement.
Et là vous savez tous qu'au niveau rapidité, meme les vélos me doublent :lol:

PS:
Pour le secret, n'en parlez pas, personne est au courant. :D
J'vous previens si ça sort d'ici je saurais que ça viens de vous :lol: :lol:
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

J'ai pondu un code vite fait

Peut être cela t'aidera !

Mais coté déclaration d'amour je suis pas PD j'aime trop les "Gros Poumons" alors tu n'as aucune chance !! restons Amis ! :lol:

Code : Tout sélectionner

Enumeration
  #Window_0
  #Tree_0
  #Button_0
EndEnumeration

; ***************************************** Piqué à Droopy lib ***************************************
ProcedureDLL InitWrite(INIFile.s,Section.s,key.s,string.s) ;
  retour=WritePrivateProfileString_(@Section,@key,@string,@INIFile)
  If retour<>0 : retour=1:EndIf
  ProcedureReturn retour
EndProcedure
ProcedureDLL.s InitRead(INIFile.s,Section.s,key.s)
  retour.s=Space(512)
  vide.s
  GetPrivateProfileString_(@Section,@key,@vide,@retour,512,@INIFile)
  ProcedureReturn retour
EndProcedure

;*******************************************************************************************************
Procedure Arbre()
  ClearGadgetItemList(#Tree_0)
  OpenFile(1,"c:\Kwai.txt")
  Repeat
    Ligne.s=ReadString(1)
    If Left(Ligne,1)="["
      n=0
    Else
      n=1
    EndIf
    AddGadgetItem (#Tree_0, -1, Ligne, 0, n) 
  Until Eof(1)
  CloseFile(1)
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 475, 215, 506, 379, "Kwai.txt",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      TreeGadget(#Tree_0, 30, 20, 170, 190)
      ButtonGadget(#Button_0, 50, 260, 100, 30, "Crée fichier")
   EndIf
  EndIf
EndProcedure

Open_Window_0()
Arbre()
Repeat
  Event = WaitWindowEvent() 
  GadgetID = EventGadget()
  If Event = #PB_Event_Gadget
    If GadgetID = #Tree_0
      
    ElseIf GadgetID = #Button_0
      InitWrite("c:\Kwai.txt","Identité","Nom","Kwai")
      InitWrite("c:\Kwai.txt","Identité","PréNom1","Chang")
      InitWrite("c:\Kwai.txt","Identité","PréNom2","Caine")
      InitWrite("c:\Kwai.txt","Caracteristiques","Poids","150 Kg")
      InitWrite("c:\Kwai.txt","Amis","Pseudo1","Dobro")
      InitWrite("c:\Kwai.txt","Amis","Pseudo2","Brossden")
      InitWrite("c:\Kwai.txt","Amis","Pseudo3","Chris")
      InitWrite("c:\Kwai.txt","Amis","Pseudo4","SPH")
      Arbre()
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop

End
Est ce que cela ressemble à ce que tu cherches ?
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

"Tutafait" "Tutafait", ça ressemble comme deux gouttes de vin à ce que je désire.

Mais comment fait tu pour mettre une rubrique dans une autre rubrique ??
Mais coté déclaration d'amour je suis pas PD j'aime trop les "Gros Poumons" alors tu n'as aucune chance !! restons Amis !
Sache mon ami, que nul n'est besoin d'actes bassement charnels pour savourer les bienfaits de l'amour entre deux etres :lol:
En plus ça m'arrange car vu ma morphologie, j'ai plus qu'une page à mon KAMASUTRA :D
Quoi qu'il en soit au niveau gros poumons j'suis équipé j'doit faire 90C :lol:
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

C'est la ligne :
AddGadgetItem (#Tree_0, -1, Ligne, 0, n)
qui fait tout

N est le niveau de ramification

soit 0 pour être une nouvelle branche directement sur le tronc
soit 1 pour être une nouvelle branche sur la branche précédente
soit 2 être une nouvelle branche sur la branche de la branche...
etc

Me suis je bien expliqué ?
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Je crois avoir compris pour la lecture.
Mais pour creer un niveau superieur tu l'ecris comment dans la fonction :

Code : Tout sélectionner

InitWrite(INIFile.s,Section.s,key.s,string.s) 
Car il n'y a pas de niveau la :roll:
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Exemple :

InitWrite("c:\Kwai.txt","Niv1\Niv2\NIv...","Type","Valeur")

il faut modifier le code en conséquence !
Dernière modification par brossden le mer. 12/sept./2007 7:30, modifié 1 fois.
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

J'ai essayé de taper "Niveau1\niveau2" mais ça me créé un "repertoire" qui s'appelle "Niveau1\niveau2"et non pas un repertoire niveau2 dans le repertoire niveau1 :?
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

J'ai aussi ecrit qu'il fallait modifier le code en conséquence !!

Le code à modifier est pour la construction de l'arbre et non du stockage dans le fichier TXT qui est bien conforme au format d'export de regedit !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

J'ai aussi ecrit qu'il fallait modifier le code en conséquence !!
Ok, ok le BROSSDEN, il a mangé du lion.
Ne nous enervons pas :roll:

C'est la premiere fois que je démarre ton super code.
Je clique comme le "boeuf" que je suis, sur le carré avec ecris dessus "Crée fichier".
Ooohhhhh !!! un joli arbre comme je reve d'avoir (enfin presque, il manque des branches :D) apparait devant mes deux "noeils" ébahis 8O
Aussitot, mon corps s'empli de joie, que j'ai bien du mal à contenir. :D

Mais .....
Je me dit ...
Mais comment "taice", que je peux rajouter cette jolie branche tant désirée :D
Aussitot, ne tenant plus d'impatience, mon neurone tourne sur lui meme, et je tappe les petits carrés qui ressemble a des "chocolettis" sur une autre tablette de chocolat, mais tout ça en blanc et en plastique) et il est vite stoppé par le fait que le "Narbre" il est deja ecris dans la case blanche.
Donc bettement (enfin kwaiement) je me dit comment ce "narbre" a t'il été créé ???
J'en deduit kwaiement encore que c'est la fonction :

Code : Tout sélectionner

InitWrite("c:\Kwai.txt","Identité","Nom","Kwai") 
qui ecrit la premiere fois cette branche dans mon "narbre"

Et alors, j'essais de vouloir ecrire "niveau1/niveau2" de façon à ce que la premiere fois que je clique sur le carré avec ecris dessus "Crée fichier" j'ai déja 2 niveaux.

Car surement et puisque tu le dit, et que je te crois, parceque t'es "achement plus fort que moi à la récréé" :D
On doit pouvoir (enfin si j'ai compris) créer le "narbre" comme tu l'as fait, puis lui rajouter un 2e niveau et peut etre l'enregistrer comme ça, pour qu'il le ressorte à la deuxieme fois.

Mais...... ce que je n'ai pas compris, c'est comment modifier le code en "qu'on sait quand c'est" (Comme tu dit :wink: ) pour que tout de suite, au premier clic, j'ai toutes les branches avec les "mamans branches" et aussi les "bb branches" (filles des mamans branches) :D

Voila, c'est sur ce point que c'est installé un p..... de point d'interrogation qui va me valoir un reflux gastrique pour toute la journée :lol:

Quoi qu'il en soit, je te remercie evidemment de ta precieuse aide.

PS: Essaye le NUTS....................,
c'est plus tendre comme gourmandise que le LION :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Y'a personne pour m'expliquer ce qui parait si simple à comprendre d'apres notre ami BROSSDEN :cry:
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Cherche le tuto (bon c'est pas vraiment rédigé comme un tuto, je le conçois) sur les TreeGadgets. J'avais fait une bonne petite appli sympa avec des petites icônes (un peu petites). Il te permets d'éditer un TreeGadget assez facilement.

Le code de Brossden + mon code = ça devrait carrément suffire !!!

Non?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ah oui oui, je m'en rappelle maintenant, je vais chercher ça :wink:
Le code de Brossden + mon code = ça devrait carrément suffire !!!

Non?
Alors la, je ne parierais pas obligatoirement la dessus.
Quand tu as affaire à un "inhibé du bulbe" comme moi, tu sais, meme deux géniaux codes peuvent ne pas suffir :oops:

Merci de ton aide, j'ai cru par moment etre transparent.
Pas grand monde ne m'a aidé sur ce coup la, à part BROSSDEN, mais je crois qu'il a eu peur que notre relation tourne au "pinard". :lol:
Car il m'a laissé tombé aussi. :cry:
Pourtant, je trouvais pas ma question si idiote (normal c'est moi qui la pose :D )
C'est quand meme dingue qu'il n'ai pas prévu dans cete API d'enregistrer dans la variable clef plusieurs niveaux comme "Niveau1/Niveau2" 8O

Je sais c'est dur de tirer un boulet comme moi sur un POST.
Alors imagine ma vie, car moi je me traine 24/24h. :cry:

Encore merci
Bonne journée à toi. 8)
Répondre