Acceler mon programme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Acceler mon programme

Message par Parole De JOJO »

Voila un code que j'ai mis des heures et des heures a realiser (tout seul comme un grand...)
l'idee est d'afficher dans une liste des artistes, dans la deuxieme liste, des albums de l'artiste selectione en liste 1, et dans la troisieme liste les noms de pistes des chants de l'album selctione dans la liste 2 (de l'artiste selectione dans la liste 1)
au dessus des listes 1 et 2 il y a un stringgadget pour entrer le debut d'un nom d'artiste ou dalbum et remplir la liste avec les artist/albums commencent par ces lettres

les donnees sont enregistres dans un fichier "database.Nmt" (que j'ai inclu au code), c'est un fichier prefs, et chaque album a un identifiant numerote comme par exemple:
[info]
num= 4 ;nombre_d'albums+enregistres
[albums]
1=artist,album;genre;nombre_de_pistes,piste_1;piste_2 etc'
2=artist,album;genre;nombre_de_pistes,piste_1;piste_2 etc'
3=artist,album;genre;nombre_de_pistes,piste_1;piste_2 etc'
4=artist,album;genre;nombre_de_pistes,piste_1;piste_2 etc'
5=artist,album;genre;nombre_de_pistes,piste_1;piste_2 etc'
ensuite le code recree des prefs nommees "artist" et "album" pour classer les artiste et albums par ordre alphabetique, et les affiches

dans l'exemple inclus il y a 30 albums environ. dans ma liste il y a 2500 albums, et le programme commence a etre lent
en fait j'ai remarque que ce qui met du temps c'est d'afficher les 2500 albums dans la liste. alors pour le premier affichage (quand on allume le prog) c'est pas grave car ca s'ouvre en invisible juska que tout soit pret
en fait ce qui m'embete c'est que en clikant sur le string, la liste se vide et se reremplit, avant qu'on y ecrive kelke chose, je voudrais qu'elle agisse SEULEMENT si quelque chose y a change
seulement je n'ai pas reussi a le faire, j'imagine que c'est aves le focus mais je n'y parvient pas et donc je me permet de demander de l'aide

c'est la procedure fillmatching qui est problematique a mon avis

merci d'avance

Code : Tout sélectionner

Enumeration
  #Main_Window
  #Main_ListArtist
  #Main_ListAlbum
  #Main_ListTracks
  #Main_String_Artist
  #Main_String_Albums
  #Close
EndEnumeration

Declare OpenWindow_Main_Window()
Declare Fill_Main_Window(flag)
Declare Fill_Albums()
Declare Fill_Tracks()
Declare.s GetIDalbum()
Declare Preferences()
Declare fillmatching(String,ListIcon,List txtt.s())
Declare fillmatching2(string)
Declare CreateIncludedFiles(FileName.s, *BinStart, *BinEnd)

Global database.s="Database.Nmt"
Global artistmtag.s="artist.mtag"
Global albummtag.s="album.mtag"
Global NewList albumsorted.s()
Global NewList artistsorted.s()
Global NewList fewalbumsorted.s()

CreateIncludedFiles(database, ?database_Start, ?database_End)
Preferences()
OpenWindow_Main_Window()
Fill_Main_Window(0)

Repeat
  
  Event=WaitWindowEvent()
  Select EventWindow()
    Case #Main_Window
      Select Event
        Case #PB_Event_CloseWindow:quit=1
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #Main_ListArtist:Fill_Albums():SetGadgetText(#Main_String_Albums,"")
            Case #Main_ListAlbum:Fill_Tracks()
            Case #Main_String_Artist,#Main_String_Albums:fillmatching2(EventGadget())
              Case #Close:quit=1
          EndSelect
      EndSelect
  EndSelect
Until quit=1
End


Procedure OpenWindow_Main_Window()
  If OpenWindow(#Main_Window, 355, 129, 495, 240, "", #PB_Window_Invisible|#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    ListIconGadget(#Main_ListArtist, 15, 60, 145, 145, "", 141, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER)
    ListIconGadget(#Main_ListAlbum, 175, 60, 145, 145, "", 141, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER)
    ListIconGadget(#Main_ListTracks, 335, 35, 143, 169, "", 139, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER)
    StringGadget(#Main_String_Artist, 15, 35, 145, 25, "")
    StringGadget(#Main_String_Albums, 175, 35, 144, 25, "")
    TextGadget(#PB_Any, 62, 11, 31, 14, "Artist")
    TextGadget(#PB_Any, 228, 11, 31, 14, "Album")
    TextGadget(#PB_Any, 389, 11, 31, 14, "Pistes")
    ButtonGadget(#Close, 210, 210, 50, 20, "Close")
  EndIf
EndProcedure


Procedure Fill_Main_Window(flag)
  AddGadgetItem(#Main_ListArtist,-1,"*** All Artists ****")
  ForEach artistsorted()
    AddGadgetItem(#Main_ListArtist,-1,artistsorted())
  Next
  ForEach albumsorted()
    AddGadgetItem(#Main_ListAlbum,-1,albumsorted())
  Next
  
  SetActiveGadget(#Main_ListArtist)
  SetGadgetState(#Main_ListArtist,0)
  SetGadgetState(#Main_ListAlbum,0)
  HideWindow(#Main_Window,0)
EndProcedure

Procedure Fill_Albums()
  ClearList(fewalbumsorted())
  ClearGadgetItemList(#Main_ListAlbum)
  artstate=GetGadgetState(#Main_ListArtist)
  If artstate=0 And GetGadgetText(#Main_String_Artist)=""
    ForEach albumsorted()
      AddGadgetItem(#Main_ListAlbum,-1,albumsorted())
    Next
  Else
    artist.s=GetGadgetItemText(#Main_ListArtist,artstate)
    OpenPreferences(artistmtag)
    PreferenceGroup(artist)
    ExaminePreferenceKeys()
    While NextPreferenceKey()
      AddElement(fewalbumsorted())
      fewalbumsorted()=PreferenceKeyName()
    Wend
    ClosePreferences()
    SortList(fewalbumsorted(),#PB_Sort_Ascending)
    ForEach fewalbumsorted()
      AddGadgetItem(#Main_ListAlbum,-1,fewalbumsorted())
    Next
  EndIf
  SetGadgetState(#Main_ListAlbum,0)
EndProcedure

Procedure.s GetIDalbum()
  ; recuperation des infos de la fenetre
  albumstate=GetGadgetState(#Main_Listalbum)
  artiststate=GetGadgetState(#Main_Listartist)
  ; si une andouille appuie tout en bas
  If albumstate=-1:albumstate=0:EndIf
  If artiststate=-1:artiststate=0:EndIf
  ; nom de l'album et artiste
  albumname.s=GetGadgetItemText(#Main_ListAlbum,albumstate)
  OpenPreferences(albummtag)
  PreferenceGroup(albumname)
  ExaminePreferenceKeys()
  NextPreferenceKey()
  If artiststate
    artistname.s=GetGadgetItemText(#Main_ListArtist,artiststate)
  Else
    artistname.s=PreferenceKeyName()
  EndIf
  IdAlbum.s=ReadPreferenceString(artistname,"")
  ProcedureReturn IdAlbum
  ClosePreferences()
EndProcedure

Procedure Fill_Tracks()
  IdAlbum.s=GetIDalbum()
  If IdAlbum
    ; recuperation des details de l'album
    OpenPreferences(database)
    PreferenceGroup("albums")
    abl.s=ReadPreferenceString(IdAlbum,"")
    ClosePreferences()
    Qte_Tracks=Val(StringField(abl,4,","))
    Dim prefs.s(Qte_Tracks+3)
    prefs(1)=StringField(abl,1,",")
    prefs(2)=StringField(abl,2,",")
    prefs(3)=StringField(abl,3,",")
    For k=1 To Qte_Tracks
      prefs(3+k)=StringField(abl,4+k,",")
    Next
    ClearGadgetItemList(#Main_ListTracks)
    For k=4 To Qte_Tracks+3
      AddGadgetItem(#Main_ListTracks,-1,prefs(k))
    Next
  EndIf
EndProcedure

Procedure Preferences()
  Define.l Qte_Albums,k
  ;Cree les listes artist() et album()
  OpenPreferences(database)
  PreferenceGroup("info")
  Qte_Albums=ReadPreferenceLong("num",0)
  PreferenceGroup("Albums")
  Dim artist.s(Qte_Albums+1)
  Dim Album.s(Qte_Albums+1)
  For k=1 To Qte_Albums
    abl.s=ReadPreferenceString(Str(k),"")
    artist(k)=StringField(abl,1,",")
    Album(k)=StringField(abl,2,",")
  Next
  ClosePreferences()
  ;Cree le database artist.mtag et la liste artistsorted()
  CreatePreferences(artistmtag)
  For k=1 To Qte_Albums
    PreferenceGroup(artist(k))
    WritePreferenceString(Album(k),Str(k))
  Next
  ClearList( artistsorted.s())
  ExaminePreferenceGroups()
  While NextPreferenceGroup()
    AddElement(artistsorted())
    artistsorted()=PreferenceGroupName()
  Wend
  ClosePreferences()
  SortList(artistsorted(),#PB_Sort_Ascending)
  ;Cree le database album.mtag et la liste albumsorted()
  CreatePreferences(albummtag)
  For k=1 To Qte_Albums
    PreferenceGroup(Album(k))
    WritePreferenceString(artist(k),Str(k))
  Next
  ClearList( albumsorted.s())
  ExaminePreferenceGroups()
  While NextPreferenceGroup()
    AddElement(albumsorted())
    albumsorted()=PreferenceGroupName()
  Wend
  ClosePreferences()
  SortList(albumsorted(),#PB_Sort_Ascending)
EndProcedure

Procedure fillmatching(String,ListIcon,List txtt.s())
  a.s=GetGadgetText(String)
  ClearGadgetItems(ListIcon)
  If listicon=#Main_ListArtist And a=""
    AddGadgetItem(#Main_ListArtist,-1,"*** All Artists ****")
  EndIf
  ForEach txtt()
    If UCase(Left(txtt(),Len(a)))=UCase(a)
      AddGadgetItem(ListIcon,-1,txtt())
    EndIf
  Next
  SetGadgetState(ListIcon,0)
EndProcedure

Procedure fillmatching2(string)
  Select string
    Case #Main_String_Artist:fillmatching(#Main_String_Artist,#Main_ListArtist,artistsorted())
    Case #Main_String_Albums
      If GetGadgetState(#Main_ListArtist)=0
        fillmatching(#Main_String_Albums,#Main_ListAlbum,albumsorted())
      Else
        fillmatching(#Main_String_Albums,#Main_ListAlbum,fewalbumsorted())
      EndIf
  EndSelect
EndProcedure

Procedure CreateIncludedFiles(FileName.s, *BinStart, *BinEnd)
  If FileSize(FileName) = -1
    Protected id.l = CreateFile(#PB_Any, FileName)
    If id
      WriteData(id, *BinStart, *BinEnd - *BinStart)
      CloseFile(id)
    EndIf
  EndIf
EndProcedure


DataSection
  database_Start:
  ;{
  Data.l $666E695B,$0A0D5D6F,$206D756E,$3233203D,$615B0A0D,$6D75626C,$0A0D5D73,$203D2031,$6F6C6853,$20656D69,$74726547,$2C72656E
  Data.l $20796153,$79617341,$6168432C,$64697373,$65757169,$2C34312C,$53203130,$41207961,$2C796173,$48203230,$61687361,$6D69616D
  Data.l $2033302C,$72687341,$4D206965,$34302C69,$63694E20,$74616D68,$2035302C,$69736542,$6168636D,$2036302C,$62616853,$20736562
  Data.l $6F796148,$614C206D,$6D656873,$2037302C,$6F726142,$20686375,$61656853,$2C72616D,$52203830,$6E206565,$65622061,$65796E6F
  Data.l $2C756F6E,$45203930,$6B206E69,$6B6F6C65,$6F6E6965,$30312C75,$6E694D20,$6D616820,$73746965,$312C7261,$654D2031,$656D6173
  Data.l $2C686361,$4D203231,$6F422069,$6953206E,$2C686361,$48203331,$79707061,$72694220,$61646874,$34312C79,$76655920,$63657261
  Data.l $68636568,$0A0D2C61,$203D2032,$6F6C6853,$20656D69,$74726547,$2C72656E,$20796153,$79617341,$6168432C,$64697373,$65757169
  Data.l $2C34312C,$53203130,$41207961,$2C796173,$48203230,$61687361,$6D69616D,$2033302C,$72687341,$4D206965,$34302C69,$63694E20
  Data.l $74616D68,$2035302C,$69736542,$6168636D,$2036302C,$62616853,$20736562,$6F796148,$614C206D,$6D656873,$2037302C,$6F726142
  Data.l $20686375,$61656853,$2C72616D,$52203830,$6E206565,$65622061,$65796E6F,$2C756F6E,$45203930,$6B206E69,$6B6F6C65,$6F6E6965
  Data.l $30312C75,$6E694D20,$6D616820,$73746965,$312C7261,$654D2031,$656D6173,$2C686361,$4D203231,$6F422069,$6953206E,$2C686361
  Data.l $48203331,$79707061,$72694220,$61646874,$34312C79,$76655920,$63657261,$68636568,$0A0D2C61,$203D2033,$6D696148,$72734920
  Data.l $2C6C6561,$68736559,$6E614C20,$4120756F,$694D206C,$73694C20,$68636F6D,$7A694D2C,$68636172,$32312C69,$2031302C,$20617441
  Data.l $6F64614B,$302C6873,$654C2032,$4120696D,$4B20696E,$2C65726F,$59203330,$20687365,$6F6E614C,$6C412075,$20696D20,$6D73696C
  Data.l $2C68636F,$4C203430,$20686365,$302C614E,$6C452035,$6D696B6F,$2036302C,$6579614C,$2064656C,$657A6148,$2037302C,$6E6F6441
  Data.l $6B614820,$302C6C6F,$74412038,$63412061,$302C6968,$65592039,$65726176,$63656863,$312C6168,$614E2030,$4E206863,$2C686361
  Data.l $48203131,$6170756F,$2032312C,$5920644F,$67616E65,$2C756F6E,$20340A0D,$694C203D,$53206170,$6C656D68,$72657374,$6F65592C
  Data.l $20696475,$68736150,$2C74756F,$73616843,$69646973,$2C657571,$302C3431,$6F592031,$6D6F6D69,$6C6F7620,$6F6C696F,$2032302C
  Data.l $6C656853,$4F20696F,$696E6173,$796F4720,$2033302C,$73696F59,$69657668,$65726520,$69207374,$656F7273,$34302C6C,$6E655920
  Data.l $2C72656E,$41203530,$72656873,$746F7920,$2C726173,$41203630,$73755020,$65746568,$69592072,$37302C64,$6C614820,$756C656C
  Data.l $2038302C,$6863694F,$2C6F6C69,$57203930,$20656B61,$312C7055,$69422030,$61746863,$61422076,$6550206C,$31312C69,$206C4120
  Data.l $68736954,$656C6C61,$32312C6C,$656D4F20,$312C6E69,$61432033,$20797272,$312C6E4F,$65482034,$6C65746E,$2C686365,$20350A0D
  Data.l $6959203D,$68637374,$52206B61,$6E65736F,$2C6C6174,$6C616853,$6C656873,$32207365,$6168432C,$64697373,$65757169,$2C30312C
  Data.l $53203130,$6F6C6168,$32302C6D,$696E4120,$61614D20,$2C6E696D,$47203330,$6C6F6461,$2034302C,$74616C4F,$35302C7A,$6E275620
  Data.l $6F68636F,$2036302C,$61682756,$302C6179,$65592037,$53206968,$6F6C6168,$38302C6D,$656F4220,$39302C65,$61735420,$2C6B6964
  Data.l $4D203031,$6F422069,$6953206E,$2C686361,$20360A0D,$6959203D,$65796D72,$6D614420,$452C6E65,$63696C72,$4E206568,$6E756769
  Data.l $432C6D69,$73736168,$71696469,$392C6575,$2031302C,$20686349,$20626F48,$61776547,$302C7472,$63492032,$6F462068,$4120726F
  Data.l $6D796168,$2033302C,$42206944,$6574656C,$302C656C,$61592034,$2C766F6B,$53203530,$62626168,$4B207365,$7365646F,$36302C68
  Data.l $6C694820,$2C6C656C,$57203730,$49206F6F,$65442073,$73542072,$6B696461,$2038302C,$73736F59,$4D206665,$72696B6F,$61685320
  Data.l $73656262,$2039302C,$62626152,$6B412069,$2C617669,$20370A0D,$694C203D,$53206170,$6C656D68,$72657374,$696C422C,$6E694120
  Data.l $726F4820,$68432C61,$69737361,$75716964,$33312C65,$2031302C,$6F626152,$69617369,$2032302C,$6C756853,$68532069,$636F6C65
  Data.l $33302C68,$73614820,$65766968,$2C756E69,$47203430,$61676C61,$6148206C,$7A6F6863,$302C7265,$68432035,$696F6C61,$6843206D
  Data.l $6D616C6F,$302C6974,$6F482036,$42207474,$63757469,$2C6E6568,$53203730,$61276168,$69736F76,$2038302C,$6873694E,$6D492074
  Data.l $61685320,$736F6262,$72654720,$2C746465,$41203930,$6F726F73,$61482068,$61677572,$614D2069,$7568636C,$30312C73,$7A695420
  Data.l $4C20756B,$74696D27,$73696F76,$2031312C,$6863275A,$2C72696F,$42203231,$4120696C,$206E6979,$61726F48,$2033312C,$54206C41
  Data.l $6E69646F,$380A0D2C,$59203D20,$63737469,$206B6168,$65736F52,$6C61746E,$6168532C,$6568736C,$2074656C,$68432C31,$69737361
  Data.l $75716964,$30312C65,$2031302C,$4820694D,$68736961,$2032302C,$6F726B45,$2033302C,$75646F59,$2034302C,$68736B41,$2C617669
  Data.l $4B203530,$74697669,$36302C69,$62614820,$6863746F,$302C6D69,$73452037,$45206173,$79616E69,$2038302C,$65687341,$61422072
  Data.l $302C6172,$614D2039,$766F5420,$30312C75,$20694B20,$6863694E,$0D2C6D61,$3D20390A,$6C685320,$656D696F,$72654720,$72656E74
  Data.l $73694E2C,$2C6D6973,$73616843,$69646973,$2C657571,$302C3331,$694E2031,$2C6D6973,$4B203230,$7365646F,$33302C68,$206D4920
  Data.l $206E6945,$20696E41,$302C694C,$68532034,$6369656D,$2C6C6568,$52203530,$65686361,$36302C6C,$6B615220,$6B615220,$2037302C
  Data.l $68736148,$54206D65,$656E7669,$38302C68,$68654D20,$61726961,$2039302C,$68736959,$2C616D6F,$48203031,$6968736F,$312C6F76
  Data.l $654C2031,$68636966,$2C686361,$59203231,$6C616865,$756C656C,$2033312C,$616D6853,$696E4220,$310A0D2C,$203D2030,$6170694C
  Data.l $6D685320,$73746C65,$4C2C7265,$766F7465,$68432C61,$69737361,$75716964,$31312C65,$2031302C,$6147202D,$655A206D,$32302C65
  Data.l $41202D20,$6154206C,$72657473,$2033302C,$6853202D,$6F626261,$34302C73,$43202D20,$75736168,$302C616E,$202D2035,$20696E41
  Data.l $6127614D,$2C6E696D,$2D203630,$65275620,$65686174,$37302C72,$4B202D20,$75646469,$4C206873,$6E617665,$38302C61,$4B202D20
  Data.l $6863616F,$6E614820,$6E756769,$2039302C,$6552202D,$69656F66,$312C756E,$202D2030,$65742755,$76756873,$31312C61,$4C202D20
  Data.l $766F7427,$0D2C6861,$2031310A,$694C203D,$53206170,$6C656D68,$72657374,$6B694C2C,$45206F72,$61482074,$656C6168,$68432C6C
  Data.l $69737361,$75716964,$33312C65,$2031302C,$6148202D,$756C656C,$2D206F6B,$6B654D20,$2C696D69,$2D203230,$7A744220,$20736965
  Data.l $72736959,$2C6C656F,$2D203330,$206F4C20,$756E614C,$2034302C,$6148202D,$6D656873,$63655A20,$6F726F68,$302C696E,$202D2035
  Data.l $76616855,$302C6974,$202D2036,$20686F4D,$6968734F,$202D2076,$62616853,$65656863,$2037302C,$6F48202D,$4C207564,$65687361
  Data.l $38302C6D,$4D202D20,$48206E69,$69656D61,$72617A74,$59202D20,$6E696D65,$2039302C,$644F202D,$2C6F6863,$2D203031,$79614820
  Data.l $4E206D6F,$6C69676F,$312C686F,$202D2031,$206F6E4F,$68736148,$312C6D65,$202D2032,$75726142,$48206863,$2C6F6261,$2D203331
  Data.l $68655920,$6C656C61,$6F686375,$310A0D2C,$203D2032,$6170694C,$6D685320,$73746C65,$4E2C7265,$53206E6F,$2C706F74,$73616843
  Data.l $69646973,$2C657571,$31302C36,$4E202D20,$53206E6F,$20706F74,$63736944,$654D206F,$79656C64,$2032302C,$6F4E202D,$7453206E
  Data.l $4620706F,$6C696572,$20686369,$6C64654D,$302C7965,$202D2033,$206E6F4E,$706F7453,$726F4820,$654D2061,$79656C64,$2034302C
  Data.l $6F4E202D,$7453206E,$5420706F,$7A746E61,$64654D20,$2C79656C,$2D203530,$696F4D20,$6C656873,$36302C65,$4E202D20,$53206E6F
  Data.l $20706F74,$7265764F,$656D6974,$64654D20,$2C79656C,$33310A0D,$4C203D20,$20617069,$656D6853,$6573746C,$68532C72,$2C616D65
  Data.l $73616843,$69646973,$2C657571,$302C3031,$202D2031,$696C6C49,$73695920,$6C656F72,$2032302C,$6853202D,$302C616D,$202D2033
  Data.l $6F6B6142,$694D206C,$206C6F6B,$2C6C6F4B,$2D203430,$20694420,$72657254,$2C656C65,$2D203530,$61684320,$72796576,$302C6D69
  Data.l $202D2036,$6F6B274C,$20646F76,$62616853,$2C736F62,$2D203730,$76695620,$72657361,$6E6F4C20,$38302C69,$4E202D20,$61697365
  Data.l $614B2073,$69796170,$39302C6D,$56202D20,$20696827,$6F656853,$2C6F646D,$2D203031,$69654D20,$6853206E,$65666961,$0D2C656C
  Data.l $2034310A,$654D203D,$64616469,$73615420,$422C6173,$53206E65,$206C6568,$656C654D,$4D2C6863,$61727A69,$2C696863,$302C3031
  Data.l $202D2031,$27616D44,$302C746F,$202D2032,$206E6542,$6C656853,$6C654D20,$2C686365,$2D203330,$63615220,$2C6C6568,$2D203430
  Data.l $74694D20,$2068636F,$656C6148,$35302C76,$4F202D20,$72656873,$2036302C,$6544202D,$302C6964,$202D2037,$656C6148,$4E20756C
  Data.l $68736661,$38302C69,$41202D20,$206E6F64,$6D616C4F,$2039302C,$694C202D,$616F6D73,$312C6863,$202D2030,$5320614D,$61686568
  Data.l $0D2C6179,$2035310A,$694D203D,$20696D61,$73796F42,$6F684320,$422C7269,$61797369,$44206174,$6D687369,$2C6F7961,$73616843
  Data.l $69646973,$2C657571,$302C3031,$202D2031,$206C6F4B,$616B6148,$2C646F76,$2D203230,$6D274C20,$6E6F726F,$56206E6F,$62617227
  Data.l $6E6F6E6F,$2033302C,$6E4F202D,$2742206F,$63616F6B,$34302C68,$42202D20,$61797369,$44206F74,$6D687369,$2C6F7961,$2D203530
  Data.l $20694B20,$206F7441,$302C7548,$202D2036,$206C6F4B,$72736959,$2C6C656F,$2D203730,$68634120,$53207361,$6C616F68,$302C6974
  Data.l $202D2038,$54207345,$616D657A,$302C6863,$202D2039,$72696853,$6843206F,$736F6461,$312C6F68,$202D2030,$7567694E,$0A0D2C6E
  Data.l $3D203631,$61694D20,$4220696D,$2073796F,$696F6843,$74492C72,$4D207327,$48206E69,$6F687361,$6979616D,$68432C6D,$69737361
  Data.l $75716964,$30312C65,$2031302C,$754B202D,$6853206D,$2C6E696F,$2D203230,$27744920,$694D2073,$6148206E,$6D6F6873,$6D697961
  Data.l $2033302C,$655A202D,$61482068,$2C6D6F79,$2D203430,$696E4120,$27614D20,$6E696D61,$2035302C,$614B202D,$2C696576,$2D203630
  Data.l $206F4C20,$6F736959,$796F4720,$2037302C,$6857202D,$302C6E65,$202D2038,$5920694D,$656D6469,$2039302C,$6148202D,$2C6D6F79
  Data.l $2D203031,$73695920,$6C656F72,$310A0D2C,$203D2037,$6D61694D,$6F422069,$43207379,$72696F68,$61694D2C,$3220696D,$65592035
  Data.l $2C737261,$73616843,$69646973,$2C657571,$302C3331,$202D2031,$6C657250,$2C656475,$2D203230,$4A204120,$6E72756F,$54207965
  Data.l $756F7268,$54206867,$2C656D69,$2D203330,$6E694820,$4E206965,$6C686361,$302C7361,$202D2034,$2C756C49,$2D203530,$65754720
  Data.l $53207473,$20726174,$6D756C41,$302C696E,$202D2036,$62697254,$2C657475,$2D203730,$69725420,$65747562,$2038302C,$6C50202D
  Data.l $65736165,$74655220,$2C6E7275,$2D203930,$756F5720,$5920646C,$5020756F,$7361656C,$30312C65,$48202D20,$6C686769,$74686769
  Data.l $31312C73,$41202D20,$206E6F64,$6D6F6C4F,$2032312C,$6946202D,$206C616E,$756F6854,$73746867,$2033312C,$6152202D,$69656863
  Data.l $6977206D,$53206874,$6B657768,$0D2C7965,$2038310A,$694D203D,$20696D61,$73796F42,$6F684320,$4D2C7269,$696D6169,$2C363220
  Data.l $73616843,$69646973,$2C657571,$302C3031,$202D2031,$206C6F4B,$72736959,$206C656F,$69657241,$2C6D6976,$2D203230,$6C6F4B20
  Data.l $73695920,$6C656F72,$65724120,$6D697669,$33302C32,$4D202D20,$696D6169,$44202620,$20696465,$7A6D754B,$2C737469,$2D203430
  Data.l $61694D20,$2620696D,$64654420,$654D2069,$79656C64,$2035302C,$6544202D,$26206964,$65685420,$756C4120,$2C696E6D,$2D203630
  Data.l $6E694820,$59206965,$6D696D6F,$696F4220,$37302C6D,$53202D20,$53206D69,$6F6C6168,$38302C6D,$54202D20,$4D206568,$696D6169
  Data.l $6C6F5320,$7473696F,$39302C73,$54202D20,$41206568,$6E6D756C,$654D2069,$79656C64,$2030312C,$6946202D,$656C616E,$310A0D2C
  Data.l $203D2039,$6D61694D,$6F422069,$43207379,$72696F68,$7665522C,$2C686361,$73616843,$69646973,$2C657571,$302C3231,$202D2031
  Data.l $61766552,$302C6863,$202D2032,$656E6556,$65796568,$33302C68,$4D202D20,$64412069,$302C7269,$202D2034,$6F626952,$302C6F6E
  Data.l $202D2035,$686F2756,$6F747661,$72274C20,$63617965,$302C6F68,$202D2036,$66666F59,$37302C6F,$59202D20,$61686365,$65687364
  Data.l $302C7568,$202D2038,$7466694C,$20705520,$72756F59,$6E614320,$2C656C64,$2D203930,$69685320,$312C6172,$202D2030,$6B6D694D
  Data.l $636D696F,$312C6F68,$202D2031,$68736148,$6576696B,$2C756E69,$2D203231,$69654B20,$0A0D2C6E,$3D203032,$61694D20,$4220696D
  Data.l $2073796F,$696F6843,$68532C72,$65626261,$65592073,$68737572,$79616C6F,$432C6D69,$73736168,$71696469,$312C6575,$31302C30
  Data.l $53202D20,$62626168,$5920736F,$73757265,$616C6F68,$2C6D6979,$2D203230,$65764F20,$72757472,$33302C65,$56202D20,$72696C27
  Data.l $6F687375,$6979616C,$34302C6D,$41202D20,$72656873,$726F4220,$35302C6F,$44202D20,$69617627,$736F4820,$2C726573,$2D203630
  Data.l $20655720,$6465654E,$756F5920,$2037302C,$6853202D,$2C756D69,$2D203830,$75274E20,$6148206D,$6D656873,$2039302C,$6853202D
  Data.l $4C207269,$27616D61,$736F6C61,$2030312C,$6148202D,$76696873,$756E6965,$320A0D2C,$203D2031,$73746959,$6B616863,$736F5220
  Data.l $61746E65,$68532C6C,$68736C61,$74656C65,$432C3320,$73736168,$71696469,$312C6575,$31302C32,$64614720,$2C756C65,$53203230
  Data.l $616D6568,$2033302C,$69686559,$65685320,$302C6F6D,$63412034,$2C746168,$4D203530,$61592069,$2C656C61,$41203630,$656C2765
  Data.l $2037302C,$6873694E,$2C74616D,$48203830,$2C75646F,$56203930,$72696C65,$61687375,$6D69616C,$2030312C,$69616843,$2031312C
  Data.l $6E6D614C,$65737461,$2C686361,$44203231,$6D616572,$2C676E69,$32320A0D,$53203D20,$696F6C68,$4420656D,$616B7361,$6F502C6C
  Data.l $61657369,$45206863,$61592074,$68636564,$68432C61,$69737361,$75716964,$30312C65,$2031302C,$6F50202D,$63616573,$32302C68
  Data.l $41202D20,$2C6D696E,$2D203330,$696E4120,$65684F20,$6B616876,$736F6461,$27422068,$302C6827,$202D2034,$68736148,$736F6261
  Data.l $2035302C,$6F48202D,$68636172,$6E6F6D61,$2036302C,$6C45202D,$69616B6F,$73654E20,$616D6F68,$2037302C,$7554202D,$20616E6E
  Data.l $65766544,$38302C69,$53202D20,$6863616C,$2039302C,$6142202D,$73276162,$67694E20,$312C6E75,$202D2030,$6C697453,$6F59206C
  Data.l $43207275,$646C6968,$320A0D2C,$203D2033,$6C756853,$61522069,$4B2C646E,$61737365,$20616972,$6C412C31,$6E726574,$76697461
  Data.l $32312C65,$2031302C,$4120614D,$68636174,$2C74696C,$4D203230,$6968636F,$6544206E,$6E74616B,$302C7475,$65422033,$79697373
  Data.l $20617461,$68736944,$6179616D,$2034302C,$6C756753,$35302C61,$6F644120,$4820696E,$68736D61,$7265726F,$2036302C,$7A696C41
  Data.l $37302C61,$6F745320,$432D7972,$61726168,$302C6164,$72412038,$6C656661,$2039302C,$206E6542,$656C654D,$312C6863,$76412030
  Data.l $20756E69,$6B6C614D,$756E6965,$2031312C,$6F74694D,$53206863,$6E696568,$32312C61,$6D615420,$2C6C6162,$34320A0D,$53203D20
  Data.l $696C7568,$6E615220,$654B2C64,$72617373,$32206169,$6168432C,$64697373,$65757169,$2C31312C,$53203130,$72616168,$64614820
  Data.l $6F616D65,$32302C74,$776F4820,$64696420,$73204920,$20706F74,$73206F74,$656B6F6D,$206E6F20,$62616853,$2C736562,$52203330
  Data.l $65616665,$34302C6C,$6B654E20,$6164756F,$766F5420,$35302C61,$65794120,$302C616B,$72462036,$656C6965,$302C6863,$20412037
  Data.l $73736942,$20656C61,$6568734F,$38302C72,$6F6C4520,$2C79616B,$54203930,$746F646F,$2030312C,$6F686341,$312C6974,$614D2031
  Data.l $61684320,$68736164,$6D614220,$2C616461,$35320A0D,$59203D20,$6F6B6161,$68532076,$656B6577,$654B2C79,$72617373,$432C6169
  Data.l $73736168,$71696469,$312C6575,$31302C35,$42202D20,$68737269,$302C7375,$202D2032,$6E696548,$2C6D4120,$2D203330,$75684320
  Data.l $20686170,$6C64654D,$302C7965,$202D2034,$6873654C,$53206D65,$616D6F68,$2C6D6979,$2D203530,$68655620,$68532069,$646D6F65
  Data.l $302C686F,$202D2036,$61726F48,$654D2068,$79656C64,$2037302C,$6556202D,$4B207568,$2C696C65,$2D203830,$65685320,$52206166
  Data.l $302C7661,$202D2039,$68636152,$4D206D65,$656C6465,$30312C79,$48202D20,$206F6C61,$61646159,$312C6174,$202D2031,$766F6E41
  Data.l $312C6D69,$202D2032,$6B636F52,$64654D20,$2C79656C,$2D203331,$74615420,$312C6574,$202D2034,$4D20614D,$614D2061,$2035312C
  Data.l $6D49202D,$68734520,$68636F6B,$68636961,$320A0D2C,$203D2036,$6B616159,$5320766F,$6B657768,$4C2C7965,$65687365,$6853206D
  Data.l $69616D6F,$68432C6D,$69737361,$75716964,$33312C65,$2031302C,$6942202D,$75687372,$32302C73,$4C202D20,$65687365,$6853206D
  Data.l $79616D6F,$302C6D69,$202D2033,$68736945,$43207365,$69796168,$34302C6C,$45202D20,$2C73656D,$2D203530,$7A695920,$6172656B
  Data.l $302C6D69,$202D2036,$6F6C6148,$64615920,$2C617461,$2D203730,$74615420,$59206574,$69646469,$302C6873,$202D2038,$6E696548
  Data.l $2C6D4120,$2D203930,$20694B20,$68736148,$312C6D65,$202D2030,$4D20614D,$614D2061,$2031312C,$654D202D,$696F6873,$312C6863
  Data.l $202D2032,$696C6F4B,$2033312C,$6154202D,$20657474,$6C676E45,$2C687369,$37320A0D,$53203D20,$6D6F6C68,$6F43206F,$2C6E6568
  Data.l $616D654C,$432C6F6C,$73736168,$71696469,$312C6575,$31302C30,$41202D20,$206E6F64,$68736148,$6D6F6C6F,$2032302C,$6152202D
  Data.l $6D656863,$2033302C,$274C202D,$6F6C616D,$34302C68,$42202D20,$2065656F,$68732742,$6D6F6C6F,$2035302C,$654D202D,$6863656C
  Data.l $6D614820,$6968736F,$2C686361,$2D203630,$68654C20,$6968736F,$302C6976,$202D2037,$65726F48,$2C696E69,$2D203830,$7A745520
  Data.l $74452075,$302C6F7A,$202D2039,$617A2756,$756E656B,$2030312C,$644F202D,$73695920,$616D6F68,$320A0D2C,$203D2038,$69766F44
  Data.l $61472064,$2C796162,$6167654C,$2C796162,$73616843,$69646973,$2C657571,$302C3231,$202D2031,$73696F53,$69734120,$32302C73
  Data.l $41202D20,$61482076,$68636172,$6D696D61,$2033302C,$654C202D,$61626167,$34302C79,$4D202D20,$6F542061,$302C7576,$202D2035
  Data.l $69656E41,$302C756E,$202D2036,$69766148,$302C6927,$202D2037,$7A74694D,$2C686176,$2D203830,$20694D20,$72696441,$2039302C
  Data.l $6954202D,$6568636D,$2030312C,$7641202D,$2C756E69,$2D203131,$6D615420,$63696873,$32312C68,$59202D20,$73757265,$616C6168
  Data.l $0D2C6D69,$2039320A,$6F44203D,$20646976,$61626147,$6D4F2C79,$44207261,$6469766F,$6168432C,$64697373,$65757169,$2C31312C
  Data.l $2D203130,$67614820,$6C656D6F,$2032302C,$6556202D,$65726F6B,$302C7669,$202D2033,$63726942,$20736F68,$63697641,$302C6168
  Data.l $202D2034,$6C6D6959,$2C68636F,$2D203530,$616D4F20,$6F442072,$2C646976,$2D203630,$6E6F4420,$6E6F4420,$2037302C,$6152202D
  Data.l $6D656863,$2038302C,$615A202D,$2C686F72,$2D203930,$65685420,$74654C20,$2C726574,$2D203031,$6E615420,$31312C61,$4E202D20
  Data.l $6C696761,$0D2C6861,$2030330A,$6542203D,$20797272,$65626557,$65422C72,$61727A65,$61482074,$6D656873,$6168432C,$64697373
  Data.l $65757169,$2C34312C,$42203130,$727A6565,$48207461,$65687361,$32302C6D,$61684320,$2C6D6979,$4F203330,$756E6976,$2034302C
  Data.l $696B6552,$276C6164,$35302C65,$61685320,$73656262,$2036302C,$20726544,$65626557,$37302C72,$68655620,$76657261,$2C614E20
  Data.l $59203830,$20696865,$73746152,$302C6E6F,$69482039,$2C69656E,$43203031,$617A6168,$31312C6B,$6C654220,$6D696B6F,$2032312C
  Data.l $206E6554,$312C6942,$694D2033,$20694D20,$312C494D,$65592034,$68737572,$69616C61,$0A0D2C6D,$3D203133,$6E654220,$4620796E
  Data.l $64656972,$2C6E616D,$6D616154,$68432C75,$69737361,$75716964,$32312C65,$2031302C,$7373694D,$302C646F,$694E2032,$2C6E7567
  Data.l $55203330,$6873656B,$302C6D65,$61542034,$2C756D61,$48203530,$72656D61,$65686361,$36302C6D,$73614D20,$63616968,$37302C68
  Data.l $64614B20,$74615920,$2C6E6976,$4F203830,$2C72616D,$59203930,$64766161,$6F686375,$2030312C,$6F74654C,$312C6176,$6F422031
  Data.l $61756F74,$41206863,$312C696E,$6D452032,$0D2C7365,$2032330A,$654D203D,$64616469,$73615420,$412C6173,$614E206C,$6F726168
  Data.l $61422074,$2C6C6576,$727A694D,$2C696861,$302C3031,$6C412031,$68616E20,$746F7261,$76616220,$302C6C65,$7A412032,$206E616D
  Data.l $7374614B,$302C7265,$68432033,$6E656E6F,$34302C69,$666F5420,$4F207365,$302C6974,$6D492035,$6E452061,$73696C67,$36302C68
  Data.l $20724F20,$6F646147,$37302C6C,$27655620,$76616861,$6C206174,$27657265,$61686361,$6D616B20,$6168636F,$2038302C,$616D6853
  Data.l $6C6F4B20,$756F6E65,$2039302C,$61737345,$616E4520,$30312C79,$6D685320,$73492061,$6C656172
  Data.b $2C,$0D,$0A
  ;}
  database_End:
EndDataSection
un autre bug est l'affichage des albums, la premiere ligne de la liste artist est "All Singers" et ca affiche tout les albums, mais lorsqu'on selectionne un artist et ses albums s'affichent dans la liste 2 ,et on entre le debut d'un nom d'album dans le stringgadget 2, cq revient a tout les albums
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Acceler mon programme

Message par Ar-S »

Je ne trouve pas que ton prog rame chez moi..
Un moyen simple d'essayer de voir quelle routine rame est d'afficher le temps qu'elle met à s'exécuter dans le debug.
Pour cela, utilise ElapsedMilliseconds().

Par exemple pour ta procédure

Code : Tout sélectionner

Procedure Fill_Main_Window(Flag)
  
  TempsDepart = ElapsedMilliseconds()  ; Récupère la valeur actuelle
  ;
  AddGadgetItem(#Main_ListArtist,-1,"all")
  ForEach artistsorted()
    AddGadgetItem(#Main_ListArtist,-1,artistsorted())
  Next
  ForEach albumsorted()
    AddGadgetItem(#Main_ListAlbum,-1,albumsorted())
  Next
  
  Debug ElapsedMilliseconds()-TempsDepart ; Affiche le temps en MS
  
  SetActiveGadget(#Main_ListArtist)
  SetGadgetState(#Main_ListArtist,0)
  SetGadgetState(#Main_ListAlbum,0)
  HideWindow(#Main_Window,0)
EndProcedure

Autre petit "truc",
Pour ta boucle principale, pense à utiliser les EventType()

Code : Tout sélectionner

Repeat
  
  Event=WaitWindowEvent()
  Select EventWindow()
    Case #Main_Window
      Select Event
        Case #PB_Event_CloseWindow:quit=1
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #Main_ListArtist
              If EventType()=#PB_EventType_LeftClick 
                Fill_Albums()
                SetGadgetText(#Main_String_Albums,"")
              EndIf
              
            Case #Main_ListAlbum
              If EventType()=#PB_EventType_LeftClick
                Fill_Tracks()
              EndIf
              
            Case #Main_String_Artist,#Main_String_Albums
              If EventType()=#PB_EventType_LeftClick
                fillmatching2(EventGadget())
              EndIf  
            Case #Close:quit=1
          EndSelect
      EndSelect
  EndSelect
Until quit=1
End
Cela t'évite d'avoir recours à ces 2 tests dans GetIDalbum()

Code : Tout sélectionner

  ; si une andouille appuie tout en bas
  If albumstate=-1:albumstate=0:EndIf ; tu peux le commenter
  If artiststate=-1:artiststate=0:EndIf ; tu peux le commenter
Je n'ai pas trop le temps de regarder plus avant l'optimisation mais je trouve qu'il va bien (15/16 ms pour générer la liste, c'est très correcte).
Dernière modification par Ar-S le dim. 27/févr./2011 11:00, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Acceler mon programme

Message par Parole De JOJO »

oui car il n'y a que 30 albums dans la liste incluse
dans la vrai liste il y en a 2500
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Acceler mon programme

Message par Parole De JOJO »

Ar-S a écrit : Autre petit "truc",
Pour ta boucle principale, pense à utiliser les EventType()

Code : Tout sélectionner

Repeat
  
  Event=WaitWindowEvent()
  Select EventWindow()
    Case #Main_Window
      Select Event
        Case #PB_Event_CloseWindow:quit=1
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #Main_ListArtist
              If EventType()=#PB_EventType_LeftClick 
                Fill_Albums()
                SetGadgetText(#Main_String_Albums,"")
              EndIf
              
            Case #Main_ListAlbum
              If EventType()=#PB_EventType_LeftClick
                Fill_Tracks()
              EndIf
              
            Case #Main_String_Artist,#Main_String_Albums
              If EventType()=#PB_EventType_LeftClick
                fillmatching2(EventGadget())
              EndIf  
            Case #Close:quit=1
          EndSelect
      EndSelect
  EndSelect
Until quit=1
End
AR-S, j'ai change ce bout de code et ca a arrete de marcher
je pense que dans les strings ce qu'on attendes n'est pas un clik mais une entree clavier
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: Acceler mon programme

Message par Parole De JOJO »

Bon j'ai enfin pense a une solution, je la posterais plus tard, si ca interresse quelqun
Répondre