Page 1 sur 1
attribution variables ou....?
Publié : mar. 17/janv./2006 12:58
par david
j'ai adapté le source ci-après pour 'lister' tous les fichiers JPG d'un repertoire specifique et il me donne le nombre. Mais...
en fait, ce que je veut réellement c'est garder dans des variables distinctes chaque nom de fichier (et non pas une liste ou alors comment les ré-extraire de la liste)
je voudrais ensuite que mes variables soient utilisées ALEATOIREMENT pour m'afficger le nom du fichier (exemple chaque appuye sur espace afficher MESSAGEREQUESTER ("titre",nom-de-fichier-au-hazard$)
comment faire?
merci d'avance pour les renseignements je debute
Publié : mar. 17/janv./2006 13:25
par AWEAR
Une fois que tu a tous tes noms de fichier dans la liste, tu fais
selectelement(nomdetalistechainee(),
random(countlist(nomdetalistechainee())))
MESSAGEREQUESTER ("titre",nomdetalistechianee())
Publié : mar. 17/janv./2006 18:57
par david
j'avais oublié de mettre le programme
ta réponse à l'air claire, je ne parviens pourtant pas à l'inclure dedans (viens peut-etre du fait que la liste chainee n'est pas reellement crée mais est seulement ajouté dans listGagdget à l'afficgage?)
comment je peux faire???
ci-pares le debut du prog:
compteur=0
If OpenWindow(0, 100, 200, 290, 200, #PB_Window_SystemMenu, "PureBasic - FileSystem Example")
If CreateGadgetList(WindowID())
StringGadget (0, 10, 10, 202, 24, "")
SetGadgetText (0, "C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle")
; ButtonGadget (1, 220, 10, 60 , 24, "List")
ListViewGadget(2, 10, 40, 270, 150)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
; If EventGadgetID() = 1 ; Read
ClearGadgetItemList(2) ; Clear all the items found in the ListView
If ExamineDirectory(0, GetGadgetText(0), "*.*")
Repeat
FileType = NextDirectoryEntry()
If FileType
FileName$ = DirectoryEntryName()
If FileType = 2 ; REPERTOIRE ET NON FICHIER!
FileName$ = "NON-FICHIER"
EndIf
If FileName$ <> "NON-FICHIER"
compteur=compteur+1
AddGadgetItem(2, -1, FileName$)
EndIf
EndIf
Until FileType = 0
Else
MessageRequester("Error","Can't examine this directory: "+GetGadgetText(0),0)
; EndIf
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
compteur$=Str(compteur)
MessageRequester("resultat",compteur$)
End
Publié : mar. 17/janv./2006 19:08
par Backup
viens peut-etre du fait que la liste chainee n'est pas reellement crée
et c'est rien de le dire !
regarde dans l'aide a LinkedList !!! tu saura ce qu'es une liste chainée !!
Publié : mar. 17/janv./2006 20:32
par AWEAR
Bon voilà, j'ai repris ton code (qui pourrais être amélioré, mais c'est pour l'exemple), et la ca marche comme tu le veux (si j'ai bien compris)
Code : Tout sélectionner
compteur=0
NewList liste.s()
If OpenWindow(0, 100, 200, 290, 200, #PB_Window_SystemMenu, "PureBasic - FileSystem Example")
If CreateGadgetList(WindowID())
StringGadget (0, 10, 10, 202, 24, "")
SetGadgetText (0, PathRequester("", ""))
; ButtonGadget (1, 220, 10, 60 , 24, "List")
ListViewGadget(2, 10, 40, 270, 150)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
; If EventGadgetID() = 1 ; Read
ClearGadgetItemList(2) ; Clear all the items found in the ListView
ClearList(liste())
compteur = 0
If ExamineDirectory(0, GetGadgetText(0), "*.*")
Repeat
FileType = NextDirectoryEntry()
If FileType = 1 And Right(DirectoryEntryName(), 4) = ".jpg"
filename$ = DirectoryEntryName()
compteur=compteur+1
AddElement(liste())
liste() = filename$
AddGadgetItem(2, -1, filename$)
EndIf
Until FileType = 0
Else
MessageRequester("Error","Can't examine this directory: "+GetGadgetText(0),0)
; EndIf
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
compteur$ = Str(compteur)
MessageRequester("resultat",compteur$)
SelectElement(liste(), Random(CountList(liste())))
MessageRequester ("titre",liste())
End
Mais bon tu pourrais quand même regarder dans l'aide, il y a ce que tu cherche..