Probleme de chargement

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Probleme de chargement

Message par SpaceMan »

salut j'avais publier un code de Bernard13 par erreur
J'ai un probleme pour chargement mes enregistrements(les afficher)

Code : Tout sélectionner

;- Declarations 
; Constantes 
#INormal = 0 
Enumeration ; Gadgets 
#liste
#Numero_Biblio
#NomCD_Biblio
#CategorieCD_Biblio
#MarqueCD_Biblio
#Afficher_base
#frame
#Bouton_enregistrer
#NomCD
#MarqueCD
#combo 
#strG 
#strG_2 
#quitter 
#Quitter_2
#text_NomCD
#text_Categorie
#text_MarqueCD
EndEnumeration 

Enumeration ; Menus 
  #Enregistrer
  #Supprimer 
  #Enregistrement
  #Apropos
EndEnumeration
#FICHIER1 = "C:\Test2.txt"
Global index.l
; Structures 
Structure Biblio 
  Numero.s
  NomCD.s
  CategorieCD.s
  MarqueCD.s 
EndStructure 

; Listes 
NewList items.Biblio()
Procedure.b item_clear() 
 ClearList(items()) 
EndProcedure
index = -1
;ajout des donneés dans la liste
Procedure.b item_add()
 
 index + 1 
  If  AddElement(items()) 
    items()\Numero=GetGadgetText(#liste)
    items()\NomCD=GetGadgetText(#NomCD) 
    items()\CategorieCD=GetGadgetText(#combo) 
    items()\MarqueCD=GetGadgetText(#MarqueCD)
    AddGadgetItem(#liste,-1,Str(index)+items()\Numero+Chr(10)+items()\NomCD+Chr(10)+items()\CategorieCD+Chr(10)+items()\MarqueCD) 
  EndIf 
 ProcedureReturn 1
EndProcedure

; effacer un element de la liste 
Procedure remove() 
  effacer=0 
  If GetGadgetItemState(#liste,effacer)
    MessageRequester("Effacer ", "L'élément sélectionné sera supprimer ", #MB_OK|#MB_ICONINFORMATION) 
    RemoveGadgetItem(#liste,effacer) 
  EndIf 
EndProcedure 

;pour charger la liste
Procedure Charger() 
  OpenPreferences("c:\Test2.txt") 
  n = 0 
  Repeat 
    n + 1 
    Numero.s = ReadPreferenceString(Str(n) + "-Numero", "") 
     If Numero 
      AddElement(items()) 
      items()\Numero = ReadPreferenceString(Str(n)+"-Numero","")   
      items()\NomCD = ReadPreferenceString(Str(n) + "-NomCD","")
      items()\CategorieCD = ReadPreferenceString(Str(n) + "-CategorieCD","")
      items()\MarqueCD = ReadPreferenceString(Str(n) + "-MarqueCD","")
     EndIf
  Until Numero = ""
  
  ClosePreferences() 
  EndProcedure 

Procedure Sauver() 
  If CreatePreferences("c:\Test2.txt")
   n = 0 
    ForEach items() 
      n + 1 
      WritePreferenceString(Str(n) + "-Numero", items()\Numero + Str(n)) 
      WritePreferenceString(Str(n) + "-NomCD", items()\NomCD) 
      WritePreferenceString(Str(n) + "-CategorieCD", items()\CategorieCD) 
      WritePreferenceString(Str(n) + "-MarqueCD", items()\MarqueCD)
      ;WriteStringN("") puis utiliser cette commande ?
    Next 
    ClosePreferences() 
  EndIf 
EndProcedure 

  
  If OpenWindow(1,0,0,820,500,#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_TitleBar,"CD/DVD-Theque")  
  CreateGadgetList(WindowID(1)) 
    ListIconGadget(#liste,250,30,565,410,"N°",40,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) 
    AddGadgetColumn(#liste,1,"Nom CD",160) 
    AddGadgetColumn(#liste,2,"Categorie CD",180)
    AddGadgetColumn(#liste,3,"Marque CD",180)
  EndIf
 
        index = index + 1 
     
  CreateMenu(1,WindowID(1)) 
  MenuTitle("Menu") 
    MenuItem(#Enregistrer,"Enregistrer") 
    MenuItem(#Supprimer,"Supprimer") 
    MenuItem(#Afficher_base,"Afficher la base")
    MenuItem(#Enregistrement,"Enregistrement")
    MenuItem(#Apropos,"A propos")
    MenuBar() 
    MenuItem(#Quitter,"Quitter")
    
;creation des boutons      
    TextGadget(#text_NomCD, 10, 105,80,20,"Nom CD") 
    TextGadget(#text_Categorie, 10, 175,80,20,"Categorie") 
    TextGadget(#text_MarqueCD, 10, 245,80,20,"Marque CD")
    TextGadget(#frame, 20,30,200,35,"Bibliothèque de CDs",#PB_Text_Center|#PB_Text_Border) 
    ComboBoxGadget(#combo,90,170,150,100)
    StringGadget(#NomCD,90, 100,150,20,"Win XP")
    StringGadget(#MarqueCD,90, 240,150,20,"Sony")
     
    AddGadgetItem(#combo,00,"Musiques")
    AddGadgetItem(#combo,1,"Logiciels")
    AddGadgetItem(#combo,2,"Donnees")
    AddGadgetItem(#combo,3,"Jeux")
    AddGadgetItem(#combo,4,"Divers")
    AddGadgetItem(#combo,5,"sergio")
    SetGadgetState(#combo, 0) 
     
    ButtonGadget(#Bouton_enregistrer,10,320,100,20,"Enregistrer")
    ButtonGadget(#Afficher_base,10,370,100,20,"Afficher la base")
    ButtonGadget(#quitter,140,420,100,20,"Quitter")
    ButtonGadget(#Supprimer,140,320,100,20,"Supprimer")
    ButtonGadget(#Apropos,10,420,100,20,"A propos")
    ButtonGadget(#Enregistrement,140,370,100,20,"S'Enregistrer")
       
     
  Repeat 
    Select WaitWindowEvent()
    Case #PB_EventCloseWindow
        Sortie = 1
        event = 20
        
  ;action concernant les menus      
     Case #PB_EventMenu 
        Select EventMenuID() 
          Case #quitter 
            Sortie = 1
          Case#Afficher_base:Charger()
          Case#Enregistrer:item_add():Sauver()
          Case#Supprimer:remove() 
     EndSelect  
      
     ;action concernant les boutons    
      Case #PB_Event_Gadget 
        Select EventGadgetID()
        Case#Bouton_enregistrer:item_add():Sauver()
        Case#Supprimer:;remove()
        RemoveGadgetItem(#liste, GetGadgetState(#liste))
        
        Case #quitter
        Sortie = 1
        Case#Afficher_base:MessageRequester("Base de Données", "Cliquez sur OK pour afficher la base", #MB_OK|#MB_ICONINFORMATION):Charger()
        EndSelect
      
        Select EventType() 
       
        EndSelect         
                
        Case #PB_EventGadget 
        Select EventGadgetID()
           
        
        EndSelect 
        EndSelect
             
     Until Sortie = 1 
    
  ActivateWindow() 
  CloseWindow(1) 
;Comment faire pour réecrire dans le fichier "Test2.txt" chaque fois que je lance le programme
; ExecutableFormat=Windows
; EOF
thank for you
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

pourquoi tu ferais pas un saverequester
ca te permetra de choisir l'endroit où tu veux enregistrer ton fichier
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour SpaceMan

Si tu alimentais ta gadgetliste avec ta listechainée... Ce serait plus efficace non ? :lol:

ta procedure sauver pourait être :

Code : Tout sélectionner

Procedure Charger() 
  OpenPreferences("c:\Test2.txt") 
  n = 0 
  Repeat 
    n + 1 
    Numero.s = ReadPreferenceString(Str(n) + "-Numero", "") 
    If Numero <>""
      AddElement(items()) 
      items()\Numero = ReadPreferenceString(Str(n)+"-Numero","")    
      items()\NomCD = ReadPreferenceString(Str(n) + "-NomCD","") 
      items()\CategorieCD = ReadPreferenceString(Str(n) + "-CategorieCD","") 
      items()\MarqueCD = ReadPreferenceString(Str(n) + "-MarqueCD","") 
    EndIf 
  Until Numero = "" 
  ClosePreferences()
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  ClosePreferences()
  ClearGadgetItemList(#liste)
  ForEach items()
    AddGadgetItem(#liste,-1,items()\Numero+Chr(10)+items()\NomCD+Chr(10)+items()\CategorieCD+Chr(10)+items()\MarqueCD)
  Next
  ClearList(items())
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

EndProcedure 
Denis

Bonne Jounée à tous
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

encore

Message par SpaceMan »

ouais c'est une bonne idée pour le requester save
je crois que je vais y penser et l'adopter pourquoi pas :wink:

merci a toi denis c'etait vraiment ce que je voulais mais je suis trop nul pour le trouver :)
Répondre