attribution variables ou....?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

attribution variables ou....?

Message 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
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message 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())
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

viens peut-etre du fait que la liste chainee n'est pas reellement crée
et c'est rien de le dire ! :lol:

regarde dans l'aide a LinkedList !!! tu saura ce qu'es une liste chainée !!
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message 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..
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
Répondre