Page 1 sur 1
probleme EXTENSION
Publié : mer. 25/janv./2006 19:29
par david
j'utilise la fonction:
If ExamineDirectory(0, Path$, "*.*")
enfin ça pourrait bien être autre chose mais bon...
si je met : "*.jpg" il me test les jpg
si je met :"*.bmp" il me test les bmp
j'ai regardé dans l'aide
mais je n'arrive pas à lui demandé de faire genre "*.bmp"+"*.jpg"
pour avoir les deux....
il doit s'agir de la manière dont on gère le paramètre de filtre
j'ai bien essayé des trucs mais il aime pas quand j'improvise!!!
Publié : mer. 25/janv./2006 19:32
par AWEAR
C'est pas "*.jpg;*.bmp" ??
Publié : mer. 25/janv./2006 19:42
par Dorian
il me semble mais je peux me tromper que c'est plutôt un truc du style :
"*.jpg"|"*.bmp" ou "*jpg|*.bmp"
c'est pas ça merci quand meme
Publié : mer. 25/janv./2006 19:50
par david
j'avais essayé ça mais a priori ça ne marche pas
pour info ma partie de prog concerné c'est:
;*************************
;*** compte fichiers ****
;*************************
compteur=0
Path$ ="C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"
If ExamineDirectory(0, Path$, "*.*") ;veut jpg et bmp et pas tous!!!!
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
;
;
End
Publié : mer. 25/janv./2006 19:51
par Dr. Dri
@Dorian
Là tu confond avec OpenFileRequester()
L'aide n'est pas assez claire là dessus en fait...
Dri
Publié : mer. 25/janv./2006 20:00
par david
j'avais bien vu effectivement que OpenFileRequester() ... utilise bien les "|" mais apparament dans mon cas bien précis ça a l'air d'etre encore autre chose...
si quelqu'un connait la réponse....
Publié : mer. 25/janv./2006 20:31
par Chris
Je n'ai jamais réussi non plus à passer deux extensions à ExamineDirectory()
Alors je fais comme ça:
Code : Tout sélectionner
FileName$ = DirectoryEntryName() ; <-- déjà dans ton code
;***************************************
If FileType = 1 And (GetExtensionPart(FileName$)="jpg" Or GetExtensionPart(FileName$)="bmp")
Debug FileName$
EndIf
;***************************************
; <-- retour à ton code
Publié : mer. 25/janv./2006 21:27
par lionel_om
Avec des LCase() et c'est parfait Chris !!!
Oué je crois pas qu'il y ait d'autres possibilités, c'est dommage. Une suggestion pour la v4 pe être...
Publié : mer. 25/janv./2006 21:32
par Chris
lionel_om a écrit :Avec des LCase() et c'est parfait Chris !!!
Oué je crois pas qu'il y ait d'autres possibilités, c'est dommage. Une suggestion pour la v4 pe être...
Ouais, mais je les oublie à chaque fois, les LCase()

Publié : mer. 25/janv./2006 21:36
par david
ben je doit vraiment etre trop con mais ton truc il a l'air super
j'ai tenté de l'adapter de plein de maineres differentes
mais quoi que je fasse mon programme ne fonctionne plus correctement
voici la partie du sous-prog "totale" si jamais tu pouvais m'expliquer...
;*************************
;*** 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 ***
;*******************************************
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
Publié : mer. 25/janv./2006 21:59
par Flype
est-ce çà que tu veux faire ?
Code : Tout sélectionner
Path$ = "c:\windows\"
Exts$ = "bmp,dll,log"
Dim Maliste.s(512)
k=0
If ExamineDirectory(0, Path$, "*.*")
Repeat
Select NextDirectoryEntry()
Case 0
Break
Case 1
FileName$ = DirectoryEntryName()
FileExt$ = LCase(GetExtensionPart(FileName$))
If FileExt$ And FindString(Exts$,FileExt$,1)
Maliste(k) = FileName$
k + 1
EndIf
EndSelect
ForEver
Else
MessageRequester("Erreur","impossible de créer la liste")
EndIf
For i=0 To 3
MessageRequester(Path$,Maliste(Random(k-1)))
Next
ou çà
Code : Tout sélectionner
Path$ = "c:\windows\"
Exts$ = "bmp,dll,log"
NewList Maliste.s()
If ExamineDirectory(0,Path$,"*.*")
Repeat
Select NextDirectoryEntry()
Case 0: Break
Case 1:
FileName$ = DirectoryEntryName()
FileExt$ = LCase(GetExtensionPart(FileName$))
If FileExt$ And FindString(Exts$,FileExt$,1)
If AddElement(Maliste())
Maliste() = FileName$
EndIf
EndIf
EndSelect
ForEver
EndIf
For i=0 To 3
SelectElement(Maliste(),Random(CountList(Maliste())))
MessageRequester(Path$,Maliste())
Next
Publié : jeu. 26/janv./2006 16:39
par Gillou
Voilà, j'espère que c'est ça que tu veux (j'ai remplacé ton tableau par une liste chaînée) (L'exemple de Flype est nickel, même mieux

)
;*************************
;*** compte fichiers ****
;*************************
Path$ = "C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"
NewList Maliste.s()
If ExamineDirectory (0, Path$, "*.*" )
Repeat
FileType = NextDirectoryEntry()
If FileType = 1
FileName$ = DirectoryEntryName ()
ext$= UCase ( GetExtensionPart (fileName$))
If ext$= "JPG" Or ext$= "JPEG" Or ext$= "BMP"
AddElement (Maliste()) : Maliste()=FileName$
EndIf
EndIf
Until FileType = 0
Else
MessageRequester ( "Erreur" , "impossible de créer la liste" + Chr (10)+ "veuillez reconfigurer les paramètres..." )
EndIf
Compteur = CountList (Maliste())
Debug Compteur ; affiche le nombre de fichier trouvé
;*******************************************
;*** affiche aléatoirement Maliste(x) ***
;*******************************************
If Compteur>0
SelectElement (Maliste(), Random (compteur))
MessageRequester ( "!!!!!" , "la liste" + #CRLF$ +Maliste())
EndIf
End
re:merci!!!
Publié : jeu. 26/janv./2006 19:52
par david
bon ben merci à vous deux
c'est exactement ça et ça marche impeccable
je suis content parceque d'habitude mes questions étaients moins pertinentes là j'ai fait pas mal de recherches avant de demander de l'aide
et vous avez tous super sympa...
merci encore pour votre aide!
ps: mon programme va bientôt toucher à son but
je le mettrais à disposition sur le site
je pense que c'est l'idée qui est originale
sa diffusion permettra de remercier tous les purebasiciens qui m'ont aidés
et d'une manière générale tous ceux qui font vivre la programmation
et purebasic qui est réellement un superbe outil.....
j'ai démarrer il y a très (très) longtemps avec un amstrad 6128
je n'aurais jamais osé imaginer qu'un jour nous aurions de tels
outils agréables et relativement simples d'emloi
a très bientôt