ordre alphabetique
Publié : jeu. 27/janv./2005 21:36
bonsoir tout le monde j'ai un petit souci
:
je suis en train de cree un logiciel qui me permet d'ecrir et d'enregister une liste de film pour savoir quel film j'ai et quel film j'ai pas.la je suis arriver a la phase ou je met ma liste dans l'ordre alphabetique donc j'ai consulter le fichier aide de pure basic mais j'ai un peut de mal a le comprendre. voici pour moi le code que je pense me concerne:
mais comme d'abitude je n'ai pas de chance et j'ai beau lire et relire l'aide je ne voie pas comment on ecrit le code. donc si quelquin serai repondre a mon probleme ou me donner une adresse ou le probleme a deja etait poser merci de me le faire part
au revoir et a bientot
pour plus d'aide voici mon code il n'est pas encore fini loin de la
@++

je suis en train de cree un logiciel qui me permet d'ecrir et d'enregister une liste de film pour savoir quel film j'ai et quel film j'ai pas.la je suis arriver a la phase ou je met ma liste dans l'ordre alphabetique donc j'ai consulter le fichier aide de pure basic mais j'ai un peut de mal a le comprendre. voici pour moi le code que je pense me concerne:
Code : Tout sélectionner
SortArray(ArrayName(), Options [, Debut, Fin])
donc a ce que j'ai comprie dans l'aide je l'ai ecrit comme sa:le tableau spécifié selon les options souhaitées. Le tableau peut être de l'un des types suivants : byte, word, long, string. Une plage Debut, Fin optionnelle peut être demandée.
Les options peuvent prendre l'une des valeurs suivantes:
0: Trie le tableau en ordre ascendant (les plus petites valeurs en tête)
1: Trie le tableau en ordre descendant (les plus grandes valeurs en tête)
2: Trie un tableau de chaines de caractères en ne tenant pas compte de la casse (a=A, b=B etc..) et dans l'ordre ascendant
3: Trie un tableau de chaines de caractères en ne tenant pas compte de la casse (a=A, b=B etc..) et dans l'ordre descendant
Note: Si un tableau n'est pas totalement plein les éléments vides seront placés en tête dans l'ordre ascendant et en fin dans l'ordre descendant.
Code : Tout sélectionner
SortArray(ArrayName(), 3 [, a=A, z=Z])

au revoir et a bientot

pour plus d'aide voici mon code il n'est pas encore fini loin de la


Code : Tout sélectionner
Enumeration
#Window_0
#Window_1
#window_2
EndEnumeration
Enumeration
#ListIcon_0
#Button_Ajoutet
#Button_Effacee
#Button_Fiche
#Text_Titre
#Frame3D_0
#Frame3D_ajoute
#Text_NomS
#String_NomS
#Text_NomT
#editor_NomT
#Text_date
#String_date
#Text_Heure
#String_heure
#Button_ajoute
#button_ajou
#Button_recherche
#editor_NomA
EndEnumeration
Enumeration
#menu_Charger
#menu_Save
#menu_Quitter
#menu_Vider
#menu_ranger
EndEnumeration
Enumeration
#menu_Annuler
EndEnumeration
Structure Tour_struct
Nom.s
ListeT.s
Matos.s
Date.s
Heure.s
Lieux.s
EndStructure
NewList Items.Tour_struct()
Procedure.b item_clear()
ClearList(Items())
ProcedureReturn 1
EndProcedure
Procedure.b item_add()
If AddElement(Items())
Items()\Nom = GetGadgetText(#String_NomS)
Items()\ListeT = GetGadgetText(#Editor_NomT)
Items()\date = GetGadgetText(#String_Date)
Items()\Heure = GetGadgetText(#String_heure)
AddGadgetItem(#ListIcon_0, -1, Items()\Nom)
EndIf
If CountGadgetItems(#ListIcon_0)
DisableGadget(#Button_Fiche, 0)
EndIf
ProcedureReturn 1
EndProcedure
Procedure Empty()
Item_Clear()
ClearGadgetItemList(#ListIcon_0)
EndProcedure
Procedure.l Item_Load(fichier.s)
If OpenPreferences(fichier)
Repeat
i + 1
If PreferenceGroup("Item." + Str(i))
AddElement(Items())
Items()\Nom = ReadPreferenceString("titre du film", "")
Items()\ListeT = ReadPreferenceString("commentaire", "")
Items()\Date = ReadPreferenceString("note image", "")
Items()\heure = ReadPreferenceString("note son", "")
Else
Break
EndIf
ForEver
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
Procedure.l Item_Save(fichier.s)
If CreatePreferences(fichier)
ForEach Items()
i + 1
PreferenceGroup("film." + Str(i))
WritePreferenceString("titre du film", Items()\Nom)
WritePreferenceString("commentaire", Items()\ListeT)
WritePreferenceString("note image", Items()\Date)
WritePreferenceString("note son", Items()\heure)
Next
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
Procedure Open(append.b)
fichier.s = OpenFileRequester("Ouvrir", "fichier.ini", "ini | *.ini", 0)
If fichier <> ""
If append
ClearGadgetItemList(#ListIcon_0)
Else
Item_Clear()
EndIf
Item_Load(fichier)
ClearGadgetItemList(#listIcon_0)
ForEach Items()
AddGadgetItem(#listIcon_0, -1, Items()\Nom)
Items()\Nom
Next
EndIf
If CountGadgetItems(#ListIcon_0)
DisableGadget(#Button_Fiche, 0)
EndIf
EndProcedure
Procedure SaveAs()
fichier.s = SaveFileRequester("Enregistrer sous", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\liste de film", "*.txt|*.txt", 0)
If fichier <> ""
Item_Save(fichier)
EndIf
EndProcedure
Procedure RemoveGadget()
i = 0
If GetGadgetItemState(#ListIcon_0, i) & #PB_ListIcon_Checked
RemoveGadgetItem(#ListIcon_0, i)
EndIf
If CountGadgetItems(#ListIcon_0) = 0
DisableGadget(#Button_Fiche, 1)
EndIf
EndProcedure
Procedure effacer()
SetGadgetText(#String_NomS, "")
SetGadgetText(#editor_NomT, "")
SetGadgetText(#String_Date, "")
SetGadgetText(#String_Heure, "")
ActivateGadget(#String_NomS)
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 18, 13, 750, 530, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar|#PB_Window_ScreenCentered, "liste de films ")
If CreateMenu(0, WindowID())
MenuTitle( "Fichier")
MenuItem(#menu_Charger, "Charger la liste")
MenuItem(#menu_Save, "Sauvegarder la liste")
MenuItem(#menu_Quitter, "Quitter ")
MenuTitle("Edition")
MenuItem(#menu_ranger, " ranger par ordre ")
EndIf
If CreateGadgetList(WindowID())
ListIconGadget(#ListIcon_0, 23, 50, 700, 410, "Titre du film ", 696, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines)
ButtonGadget(#Button_Ajoutet, 20, 0, 190, 50, "AJOUTER FILM")
GadgetToolTip(#Button_Ajoutet, "Ajoute un titre a la liste ")
ButtonGadget(#Button_Effacee, 270, 0, 190, 50, "EFFACER DE LA LISTE")
GadgetToolTip(#Button_Effacee, "Efface un titre de la liste en cochant la case ")
ButtonGadget(#Button_Fiche, 520, 0, 190, 50, "VOIR LA FICHE ")
GadgetToolTip(#Button_Fiche, "Voir la fiche en cochant la case ")
DisableGadget(#Button_Fiche, 1)
EditorGadget(#editor_NomA, 250, 475, 400, 20, "")
ButtonGadget(#Button_recherche, 70, 470, 150, 30, "RECHERCHE")
EndIf
EndIf
EndProcedure
Procedure Open_Window_1()
If OpenWindow(#Window_1, 255, 7, 678, 600, #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Creation d'une nouvelle fiche ")
If CreateMenu(1, WindowID())
MenuTitle( "annuler le fiche cree")
MenuItem(#menu_Annuler, " Annuler la fiche ")
EndIf
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
TextGadget(#Text_NomS, 20, 40, 150, 30, "titre du film :", #PB_Text_Center)
StringGadget(#String_NomS, 180, 40, 480, 28, "")
TextGadget(#Text_NomT, 20, 110, 150, 30, "commentaire : ", #PB_Text_Center)
EditorGadget(#editor_NomT, 180, 110, 480, 150, "")
TextGadget(#Text_date, 30, 400, 110, 30, "note image :", #PB_Text_Center)
StringGadget(#String_date, 140, 400, 120, 30, "")
TextGadget(#Text_Heure, 360, 400, 110, 30, "note son :", #PB_Text_Center)
StringGadget(#String_heure, 480, 400, 130, 30, "")
ButtonGadget(#Button_ajoute, 200, 485, 290, 50, "Ajouter le film a la liste ")
GadgetToolTip(#Button_ajoute, "Ajoute une prestation a la liste ")
SetGadgetFont(#Button_ajoute, FontID2)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_EventMenu
Select EventMenuID()
Case #menu_Annuler : Fermer_Window_1 = 1
EndSelect
Case #PB_EventGadget
GadgetID = EventGadgetID()
If GadgetID = #Button_Ajoute
item_add()
Fermer_Window_1 = 1
EndIf
EndSelect
Until Fermer_Window_1 = 1
CloseWindow(#Window_1)
While WindowEvent() : Wend
EndIf
EndIf
EndProcedure
Procedure Open_Window_2(Index)
If OpenWindow(#window_2, 255, 7, 678, 600,#PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Fiche du film ")
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
TextGadget(#Text_NomS, 20, 40, 150, 30, "titre du film :", #PB_Text_Center)
StringGadget(#String_NomS, 180, 40, 480, 28, "")
TextGadget(#Text_NomT, 20, 110, 150, 30, "commentaire : ", #PB_Text_Center)
EditorGadget(#editor_NomT, 180, 110, 480, 100, "")
TextGadget(#Text_date, 30, 460, 110, 30, "note de l'image :", #PB_Text_Center)
StringGadget(#String_date, 140, 460, 120, 30, "")
TextGadget(#Text_Heure, 360, 460, 110, 20, "note du son :", #PB_Text_Center)
StringGadget(#String_heure, 480, 460, 130, 25, "")
ButtonGadget(#Button_ajoute, 200, 520, 290, 50, " Quitter la fiche ")
SetGadgetFont(#Button_ajoute, FontID2)
SelectElement(Items(), Index)
SetGadgetText(#String_NomS, Items()\Nom)
SetGadgetText(#Editor_Nomt, Items()\ListeT)
SetGadgetText(#String_date, Items()\Date)
SetGadgetText(#String_heure, Items()\Heure)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_EventCloseWindow
Fermer_Window_2 = 1
Case #PB_EventGadget
GadgetID = EventGadgetID()
If GadgetID = #Button_ajoute
Fermer_Window_2 = 1
EndIf
EndSelect
Until Fermer_Window_2 = 1
CloseWindow(#window_2)
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_EventMenu
Select EventMenuID()
Case#menu_Charger
Case#menu_save
saveas()
Case#menu_ranger
Empty()
Case#menu_Quitter
fermer_window_0 = 1
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case #Button_ajoutet
open_window_1()
Case#button_Fiche
i = 0
If CountGadgetItems(#ListIcon_0)
For i = 0 To CountGadgetItems(#ListIcon_0)
If GetGadgetItemState(#ListIcon_0, i) & #PB_ListIcon_Checked = #PB_ListIcon_Checked
Open_Window_2(i)
Break
EndIf
Next i
EndIf
Case #Button_Effacee
RemoveGadget()
EndSelect
Case #PB_EventCloseWindow
fermer_window_0 = 1
EndSelect
Until fermer_window_0 = 1
End