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

Lazarus Pascal Discussion :

Recherche automatique de fichiers ?


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 27
    Points
    27
    Par défaut Recherche automatique de fichiers ?
    Bonjour,

    J'ai fait une petit application où grâce à une boite de dialogue (TFileNameEdit) l'utilisateur va chercher un .exe, puis quand il clique sur un bouton, ça lance l'application concerné par le .exe qu'il a été chercher précédemment. (ShellExecute)
    Grâce à la propriété Filter je peu déjà aider l'utilisateur pour trouver le bon .exe et un peu aussi grâce au InitDir. (Malgré qui doit parcourir un minimum son PC pour aller le chercher)

    Maintenant je voudrait que sur un bouton, il y est une fonction qui va me chercher directement dans "X" le chemin du fichier "Y".

    Par exemple :

    Chercher dans "C:\Programs Files" (j'imagine que plus c'est précis plus c'est rapide) le fichier "blabla.exe"

    Et après je met le lien dans un variable et le tour est joué.

    Comment puis-je faire ça ?

    Merci,

    Jeff.

  2. #2
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Un petit effort de recherche n'est pas difficile quand même

    Voici un exemple d'utilisation....

    var
    sr: TSearchRec;
    begin
    if FindFirst('\\Serveur\MonDossier\*.exe', faAnyFile, sr) = 0 then
    begin
    repeat
    if not((sr.Name = '.') or (sr.Name = '..')) then
    begin
    if sr.Name = 'MonFichier.exe' then
    ShowMessage(sr.Name);
    end;
    until FindNext(sr) <> 0;
    end;
    FindClose(sr);
    end;
    http://www.developpez.net/forums/d81...ion-findfirst/

    C'est du Delphi mais cela fonctionne de la même manière avec Lazaus

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 27
    Points
    27
    Par défaut
    Merci, mais je crois que avec ta méthode ca cherche que dans "Mon Dossier", je voudrais que ca chercher dans les sous dossier aussi. Comme ca j'indique que C:\Prg Files\ mais après le .exe peut être dans des sous dossier de sous dossier (etc ...) de Prg Files par exemple.

    Ou je me trompe ?

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    La solution est dans la récursivité.

    Il faut modifier la suggestion de Chris en faisant une procédure comme suit.

    Si dans un dossier tu rencontres un autre dossier, tu appelles la procédure récursivement, et tu parcourras ainsi toute l'arborescence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    procedure TraiteUnDossier ( const Dossier, Fichier : TFileName );
     
    var
      sr: TSearchRec;
     
    begin
    if FindFirst( Dossier+FileSeparator+'*', faAnyFile, sr) = 0 then
    begin
    repeat
      if Sr.Attr and faDirectory > 0 then begin
        if not((Sr.Name = '.') or (Sr.Name = '..')) then begin
          // Dossier
          TraiteUnDossier(Dossier +  FileSeparator + Sr.name, Fichier );
          end
        end
      else begin
        if sr.Name = Fichier then
           ShowMessage(sr.Name+' trouvé dans '+Dossier);
        end;
    until FindNext(Sr) <> 0;
    end;
    FindClose(Sr);
    end;
    que tu appelles ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TraiteUnDossier ('\\Serveur\MonDossier', 'Monfichier.exe' );
    Je n'ai pas testé le code, mais l'important est le principe.

    Cordialement,
    Tintinux
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 48
    Points : 55
    Points
    55

Discussions similaires

  1. Recherche automatique de fichier par le programme
    Par dragondumond dans le forum VB.NET
    Réponses: 7
    Dernier message: 21/06/2013, 15h12
  2. Rechercher dans un fichier avec emacs
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 10h28
  3. recherche dans un fichier xml (castor)
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2004, 14h28
  4. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57
  5. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19

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