Recherche de fichiers

[Résolu]
Signaler
Messages postés
15
Date d'inscription
mercredi 23 novembre 2011
Statut
Membre
Dernière intervention
25 juin 2012
-
Messages postés
107
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
29 avril 2013
-
Slaut tt le monde,

J'ai besoin d'ouvrir un dialog(openDlg, par exp) et lui donner un string comme Filtre pour la recherche(le nom du fichier que j'ai besoin ou Filtre) et que le recherche s'execute automatiquement, puis les noms des fichiers trouvés seront copiés dans un StringList...
J'ai essayé avec openDlg, avec FileOpenDialog, mm avec ShellExecute!! J'arrive tjs pas!!!!!!!

Merci pour l'aide

5 réponses

Messages postés
107
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
29 avril 2013
1
salut!!
avant ajouter dans la partie private
ChoixRepertoire : string;
.
.
.
uses FileCtrl; la procedure comme suit:
procedure FindFiles(FilesList: TStringList; StartDir, FileMask: string);
var
SR: TSearchRec;
DirList: TStringList;
IsFound: Boolean;
i: integer;
begin
if StartDir[length(StartDir)] <> '\' then
StartDir := StartDir + '\';
IsFound :FindFirst(StartDir+FileMask, faAnyFile-faDirectory, SR) 0;
while IsFound do begin
FilesList.Add(StartDir + SR.Name);
IsFound :FindNext(SR) 0;
end;
FindClose(SR);
DirList := TStringList.Create;
IsFound :FindFirst(StartDir+'*.*', faAnyFile, SR) 0;
while IsFound do begin
if ((SR.Attr and faDirectory) <> 0) and
(SR.Name[1] <> '.') then
DirList.Add(StartDir + SR.Name);
IsFound :FindNext(SR) 0;
end;
FindClose(SR);
for i := 0 to DirList.Count - 1 do
FindFiles(FilesList, DirList[i], FileMask);

DirList.Free;
end;
apres ...
procedure TForm1.Button1Click(Sender: TObject);
var
FilesList: TStringList;
begin

FilesList := TStringList.Create;
try
FindFiles(FilesList, Edit1.Text, Edit2.Text);
ListBox1.Items.Assign(FilesList);

finally
FilesList.Free;
end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
If SelectDirectory('Choisissez le dossier .','',ChoixRepertoire)
Then begin
edit1.Text := ChoixRepertoire;

end;
end;
{je pense que ca va marcher ..et merci @+
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
bonjour,

un dialog a pour premier but de dialoguer avec l'utilisateur, donc pas d'automatisme. Si j'ai bien compris ton problème, il faut plutôt regarder vers SysUtils.TSearchRec (FindFirst, FindNext, FindClose).

Luc.
Messages postés
15
Date d'inscription
mercredi 23 novembre 2011
Statut
Membre
Dernière intervention
25 juin 2012

Salut walidlam,
Désolé pr le retard, j'étais en vaccs. Merci bcp pour cette solution, c'est exactement ce que je cherche, mais y'a encore un petit probleme, est que la masque pr la recherche doit etre *.xxx , mais j 'ai besoin d'une recherche de fichiers plus specifique, genre *.xx AND System.FileName:~="xxxxxxx"??!!
Bon j'ai essayé pr ajouter des attributs pour SR(TSearchRec), ca n aide pas, plutot la recherche fonctionne plus!!
Je teste encore, mais si tas une idée, ca sera genial!
Merci bcp, @++
Messages postés
15
Date d'inscription
mercredi 23 novembre 2011
Statut
Membre
Dernière intervention
25 juin 2012

C'est bon, c'a fontionné avec les wildcards! Super!
Merci bcp encore une fois :-)
Messages postés
107
Date d'inscription
lundi 30 mai 2011
Statut
Membre
Dernière intervention
29 avril 2013
1
salut mntup!!
pas de quoi!!
merci et @+