Page 1 sur 1

Pseudo base de donnée

Publié : lun. 16/oct./2006 17:41
par MetalOS
Salut tous le monde, voila je cherche un petit exemple d'application ou il y a 2 ou 3 champ à remplir et que je puisse les enregistrer dans une base de donnée ou voir fichier texte mais sans utiliser des requetes sql ou des truc du genre. Je cherche un truc vraiment simple, le plus simple possible.
Et je voulais aussi savoir si il y avais moyen de faire un systeme de recherche et de pouvoir modifier les donner enregistrer. Merci d'avance pour toute vos réponses.

Publié : mar. 17/oct./2006 7:43
par olivier
Tu parle de base de donnée mais j'ai l'impression que tu as besoins de quelque chose de beaucoup plus simple.

Ben voilà un petit exemple de sauvegarde de donnée. En ésperant que cela te convienne.
Il reste quelque bug mais l'idée est là.

Code : Tout sélectionner

;Il est important de définir la largeur de tes champs avant pour pouvoir les changer façilement
#chp1=50
#chp2=100
#chp3=300

Global nb_element,num_afficher

;Je déclare des tableaux, pour mettre les données en mémoire,
#nb_max_enregistrement=100
Global Dim chp1.s(#nb_max_enregistrement)
Global Dim chp2.s(#nb_max_enregistrement)
Global Dim chp3.s(#nb_max_enregistrement)



Procedure AfficheElement(num) ;permet d'afficher un élément
     SetGadgetText(0,Str(num))
     SetGadgetText(1,chp1(num))
     SetGadgetText(2,chp2(num))
     SetGadgetText(3,chp3(num))
EndProcedure

Procedure AjouteElement()
     nb_element=nb_element+1
     chp1(nb_element)=LSet(GetGadgetText(1),#chp1," ")
     chp2(nb_element)=LSet(GetGadgetText(2),#chp2," ")
     chp3(nb_element)=LSet(GetGadgetText(3),#chp2," ")
EndProcedure



OpenWindow(0,1,1,400,400,"Test BD",#PB_Window_SystemMenu )
CreateGadgetList(WindowID(0))
StringGadget(0,10,10,30,20,"",#PB_String_ReadOnly)
StringGadget(1,60,10,50,20,"")
StringGadget(2,10,40,100,20,"")
StringGadget(3,10,70,300,20,"")

ButtonGadget(10,10,100,40,20,"<-")
ButtonGadget(11,60,100,40,20,"+")
;ButtonGadget(12,110,100,40,20,"-")
ButtonGadget(13,160,100,40,20,"->")



;Je charge mes tableaux
If ReadFile(0,"ma_base.txt")
     num=0
     Repeat
          ligne$=ReadString(0)
          If ligne$<>""
               num=num+1
               chp1(num)=Mid(ligne$,0,#chp1)
               chp2(num)=Mid(ligne$,#chp1,#chp2)
               chp3(num)=Mid(ligne$,#chp1+#chp2,#chp3)
               
          EndIf
          nb_element=num
     Until Loc(0)=Lof(0)
     CloseFile(0)
EndIf

;J'affiche le premier élément
num_afficher=1
AfficheElement(num_afficher)


Repeat
     event=WaitWindowEvent()
     Select event
          Case #PB_Event_Gadget
               Select  EventGadget()
                    Case 10
                         num_afficher=num_afficher-1
                         AfficheElement(num_afficher)
                    Case 13
                         num_afficher=num_afficher+1
                         AfficheElement(num_afficher)
                    Case 11
                         AjouteElement()
                         
               EndSelect
     EndSelect
     
     
Until event=#wm_close



;Je sauve ma base
If nb_element>1
     If CreateFile(0,"ma_base.txt")
          For num=1 To nb_element
               WriteStringN(0,chp1(num)+chp2(num)+chp3(num))
          Next
          
          CloseFile(0)
     EndIf
EndIf

Publié : mar. 17/oct./2006 17:10
par MetalOS
Merci Olivier pour ton exemple, c exactement ca que je cherchais pour debuter. Encore merci.

Publié : mar. 17/oct./2006 22:05
par bernard13
merci pour ton exemple

comment tu appris tous ça
j'aimerai bien savoir programmer comme toi

chapeau si tu peux m'apprendre .