Page 1 sur 1

pb FOR NEXT et ALEATOIRE

Publié : mar. 24/janv./2006 14:17
par david
la derniere fois que j'ai demandé de l'aide les gens ont été très sympa avec moi alors j'ai décidé de bien chercher avant d'appeler "bêtement et simplement" au secours.
n'empéche que j'ai besoin d'aide.
Ce que je voudrais : PART1 elle liste le nombre de fichiers dans le repertoire specifié (ok)
PART2 : elle met les noms de fichiers en memoire Maliste(x) dimensionnée par la partie 1 (ça merdouille à cause de mon NEXT?!)
PART3 : MessageRequester va afficher à chaque apparition un nom de fichier différent de Maliste() (NB:alors la ......!!!)
Si quelqu'un peu me donner un petit coup de pouce, une piste,... SVP

;*************************
;*** compte fichiers ****
;*************************
compteur=0
Path$ ="C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"


If ExamineDirectory(0, Path$, "*.*") ;lit tous les fichiers (sauf dossiers!)

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
EndIf
EndIf
Until FileType = 0
Else
MessageRequester("Erreur","impossible de créer la liste"+Chr(10)+"veuillez reconfigurer les paramètres...")
EndIf
;
;
;*******************************************
;*** met en memoire les noms de fichiers ***
;*******************************************

Dim Maliste.s(compteur)

For k=0 To compteur

If ExamineDirectory(0, Path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
If FileType
FileName$ = DirectoryEntryName()
If FileType = 2 ; REPERTOIRE ET NON FICHIER!
FileName$ = "NON-FICHIER"
EndIf
If FileName$ <> "NON-FICHIER"
Maliste(k) =Filename$;c'est la que je voudrais mettre en memoire dans Maliste(0), Maliste(1), Maliste(2)...
;les noms de fichiers je pense que mon Next n'est pas à sa place car toutes les variables comportent
;le dernier nom de la liste

EndIf


EndIf
Until FileType = 0
Else
MessageRequester("Erreur","impossible de créer la liste"+Chr(10)+"veuillez reconfigurer les paramètres...")
EndIf



Next ;*******************

;*******************************************
;*** affiche aléatoirement Maliste(x) ***
;*******************************************

MessageRequester("!!!!!","la liste"+Chr(10)+Random(CountList((Maliste())) ;ça doit pas etre du tout ca
MessageRequester("!!!!!","la liste"+Chr(10)+Random(CountList((Maliste())) ;mais j'ai essayé plein de truc
MessageRequester("!!!!!","la liste"+Chr(10)+Random(CountList((Maliste())) ;alors comment faire?

End

Publié : mar. 24/janv./2006 16:01
par Progi1984

Code : Tout sélectionner

;*************************
;*** compte fichiers ****
;*************************
compteur=0
Path$ ="C:\Program Files\MSN Gaming Zone Extended"


If ExamineDirectory(0, Path$, "*.*") ;lit tous les fichiers (sauf dossiers!)

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
EndIf
EndIf
Until FileType = 0
Else
MessageRequester("Erreur","impossible de créer la liste"+Chr(10)+"veuillez reconfigurer les paramètres...")
EndIf
;
;
;*******************************************
;*** met en memoire les noms de fichiers ***
;*******************************************
Debug compteur
Dim Maliste.s(compteur)

k=0

If ExamineDirectory(0, Path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
If FileType
FileName$ = DirectoryEntryName()
If FileType = 2 ; REPERTOIRE ET NON FICHIER!
FileName$ = "NON-FICHIER"
EndIf
If FileName$ <> "NON-FICHIER"
Maliste(k) =Filename$;c'est la que je voudrais mettre en memoire dans Maliste(0), Maliste(1), Maliste(2)...
;les noms de fichiers je pense que mon Next n'est pas à sa place car toutes les variables comportent
;le dernier nom de la liste
k=k+1
EndIf


EndIf
Until FileType = 0
Else
MessageRequester("Erreur","impossible de créer la liste"+Chr(10)+"veuillez reconfigurer les paramètres...")
EndIf


;*******************

;*******************************************
;*** affiche aléatoirement Maliste(x) ***
;*******************************************

MessageRequester("!!!!!","la liste"+Chr(10)+Maliste(Random(compteur))) ;ça doit pas etre du tout ca
MessageRequester("!!!!!","la liste"+Chr(10)+Maliste(Random(compteur))) ;mais j'ai essayé plein de truc
MessageRequester("!!!!!","la liste"+Chr(10)+Maliste(Random(compteur))) ;alors comment faire?

End
En fait, ta boucle for next faisait faire k fois remplir le tableau de même données. A place, utilise plutot une variable compteur.

Sinon pour le random, tu as mélnagé les listes chainées et les tableaux.

Publié : mer. 25/janv./2006 7:47
par Progi1984
Cela te conviens tu ?

Publié : mer. 25/janv./2006 8:42
par Chris
Progi1984 a écrit :Cela te conviens tu ?
"cela te convient-il ?", peut-être....

Enfin, moi j'dis ça... j'dis rien! :roll: