IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

problème avec findfirst


Sujet :

API, COM et SDKs Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut problème avec findfirst
    bonjour,
    je voudrais savoir si quelqu'un connais la réponse à ce problème.
    je tourne sur windows 2000 et j'utilise delphi6 perso.
    j'ai crée une fiche avec un bouton voici le programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Button1Click(Sender: TObject);
    var Dirinfo:TSearchRec;
          texte:String;
    begin
      if FindFirst('*.OUT',faAnyFile,Dirinfo)=0 then
      begin
        Texte:=Dirinfo.Name;
        MessageDlg('je vois le fichier Outil: '+Texte,mtInformation,[mbOK],0)
      end else MessageDlg('je ne vois pas le fichier Outil',mtError,[mbOK],0);
      findclose(dirinfo);
    end;
    je recherche un fichier ayant l'extension .OUT si j'en trouve un j'ai le message "je vois" et si j'en ai pas j'ai le message inverse. Jusque là c'est simple.
    je pensais que cette fonction ne trouverais que les fichiers ayant une extension .OUT puisque dans le Path de findfirst j'ai mis *.OUT. Hors lorsque j'ai testé la fonction, j'avais dans le répertoire un seul fichier ABC.OUT. Findfirst me trouve bien le fichier. J'ai voulu ensuite testé l'affichage de mon message d'erreur, j'ai alors renommé le fichier ABC.OUT en ABC.OUT2
    et là chose bizarre qui a sans doute une explication mais que je ne connais pas Findfirst ne m'affiche pas le message d'erreur mais fait comme ci il avait trouvé un fichier ayant l'extension .OUT alors qu'il n'y en a pas puisque le fichier s'appelle alors ABC.OUT2. En passant par le debugger la variable texte prend bien le nom du fichier ABC.OUT2 alors que cela ne devrait pas être possible. (findfirst avec une recherche *.OUT me fait en fait une recherche *.OUT*)
    J'ai fait ensuite les mêmes tests mais en changeant l'extension des fichiers et de la recherche.
    dans le répertoire j'ai mis un fichier et un seul ABC.OU et j'ai mis dans finsfirst *.OU
    findfirst trouve le fichier => normal.
    j'ai renommé le fichier en ABC.OU1 et là findfirst ne trouve plus de fichier *.OU et m'affiche le message d'erreur. Donc ici cela fonctionne comme je le souhaitais. Je me suis alors dit qu'au delà de 3 caractères après le point findfirst ne tient plus compte de rien. J'ai refais un test avec un fichier qui s'appelle ABC.OUTS et une recherche findfirst avec *.OUTS. Là findsfirst trouve le fichier => normal. J'ai renommé le fichier en ABC.OUTS1 et là mon message d'erreur s'affiche, findfirst ne trouve pas de fichier. Cela fonctionne comme cela devrait.

    2 questions:
    Pourquoi findfirst ne fonctionne pas correctement lorsque je fais une recherche avec 3 caractères après le point?

    Peut être que findfirst a une origine dos, dans ce cas y a t-il une fonction identique à findfirst mais qui gère les noms dit long?

    Merci de vos réponses

    Nota: j'ai a chaque fois redemarré mon application

    [Modération]
    Balises code ajoutées par Laurent Dardenne
    [/Modération]

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    regarde cet article sur le sujet :
    Work Around the Bug of "Deprecated DOS Wildcards"
    http://www.codeguru.com/Cpp/W-P/files/article.php/c4441

Discussions similaires

  1. [AC-2007] problème avec FindFirst.
    Par lucViv dans le forum Access
    Réponses: 2
    Dernier message: 10/11/2014, 13h13
  2. Problème avec Findfirst
    Par Cabos dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/03/2011, 16h32
  3. Problème avec FindFirst quand le critère contient "
    Par Mors_Ubyte dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/05/2008, 10h13
  4. Problème avec FindFirst
    Par etranger dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2005, 01h07
  5. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo