probleme EXTENSION

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

probleme EXTENSION

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

Message par AWEAR »

C'est pas "*.jpg;*.bmp" ??
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)
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

il me semble mais je peux me tromper que c'est plutôt un truc du style :

"*.jpg"|"*.bmp" ou "*jpg|*.bmp"
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

c'est pas ça merci quand meme

Message 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
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

@Dorian
Là tu confond avec OpenFileRequester()

L'aide n'est pas assez claire là dessus en fait...

Dri
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Message 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....
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Avec des LCase() et c'est parfait Chris !!! :D
Oué je crois pas qu'il y ait d'autres possibilités, c'est dommage. Une suggestion pour la v4 pe être...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

lionel_om a écrit :Avec des LCase() et c'est parfait Chris !!! :D
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() :lol:
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message 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
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

re:merci!!!

Message 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
Répondre