Recherche de fichiers

Résolu
mnTUp Messages postés 15 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 25 juin 2012 - 20 avril 2012 à 11:19
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 - 15 mai 2012 à 18:42
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

cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
3 mai 2012 à 20:31
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 @+
3
beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
20 avril 2012 à 13:49
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.
0
mnTUp Messages postés 15 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 25 juin 2012
15 mai 2012 à 14:30
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, @++
0
mnTUp Messages postés 15 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 25 juin 2012
15 mai 2012 à 15:26
C'est bon, c'a fontionné avec les wildcards! Super!
Merci bcp encore une fois :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
15 mai 2012 à 18:42
salut mntup!!
pas de quoi!!
merci et @+
0
Rejoignez-nous