Pseudo base de donnée

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Pseudo base de donnée

Message 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.
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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
Vive le temps libre !
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message par MetalOS »

Merci Olivier pour ton exemple, c exactement ca que je cherchais pour debuter. Encore merci.
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci pour ton exemple

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

chapeau si tu peux m'apprendre .
Répondre