pb FOR NEXT et ALEATOIRE

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

pb FOR NEXT et ALEATOIRE

Message 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
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Cela te conviens tu ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Progi1984 a écrit :Cela te conviens tu ?
"cela te convient-il ?", peut-être....

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