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