Bonjour à tous,
Je vous présente le problème : j'ai 1 répertoire films, des sous répertoires (western, comédie, etc) et dans ces répertoires des documents.doc, des affiches des films.bmp et des musiques de films.mp3
j'ai mis en place en Tedit qui renseigne une chaine de caractères (exemple :wars)
Je voudrais donc une procédure qui teste la chaine de caractères et qui balaye tous les sous répertoires à la recherche de l'occurence mise dans le Tedit et qui n'affiche que les fichiers.doc
Je pensais à Pos mais cela ne fonctionne pas
Pouvez vous, s'il vous plait, m'aider
voila le code
Merci beaucoup
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Function ListeFichiers(Chemin:String):Integer; Var S:TSearchRec; suitecaracteres : string; nomfichier : string; i : integer; Begin Chemin:=IncludeTrailingPathDelimiter(Chemin); If FindFirst(Chemin+'*.*',faAnyFile,S)=0 Then Begin Repeat if (S.Name<>'.')And(s.Name<>'..') Then Begin if (S.Attr And faDirectory)<>0 Then ListeFichiers(Chemin+S.FindData.cFileName) Else begin //j'ai été obligé de rajouter Form1. pourquoi ? suitecaracteres := form1.Texterecherche.Text; Nomfichier := ExtractFilename(changeFileExt(Chemin+S.FindData.cFileName,'')); i:= Pos(suitecaracteres;nomfichier); //c'est là que cela coince : Pas assez de caractères originaux if i<>0 then Form1.Liste.Items.Add(nomfichier); //mais là : je crois que j'aurais tous les fichiers end; End; // Recherche du suivant Until FindNext(S)<>0; FindClose(S); End; End; procedure TForm1.rechercheClick(Sender: TObject); begin liste.items.clear; Recherche.enabled:= False; try ListeFichiers(AfficheRepFilms.Text); Finally Recherche.enabled:= true; end; end;
Salutations
byc001
Partager