Bonjour,
J'essaye de faire une procédure en récursif qui parcourt tous mes dossiers et sous dossiers jusqu'à trouver tous les .dll présents. Maintenant j'aimerais enregistrer le chemin de ces .dll dans une TStringList à la sortie de ma procédure mais j'ai toujours droit à l'erreur de la violation d'accès à l'adresse xxxxxx.
J'ai essayé plusieurs choses, comme passer ma procédure en fonction ou encore passer par des tableaux dynamiques mais l'erreur est toujours la même.
Voici ma procédure :
Et la procédure qui l'appelle :
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 procedure trouverDll(sDossier : String; SL_Fichier : TStringList); var SR_Info : TSearchRec; begin sDossier := IncludeTrailingPathDelimiter(sDossier); if FindFirst(sDossier + '*', faDirectory, SR_Info) = 0 then begin repeat if (SR_Info.Name <> '.') and (SR_Info.Name <> '..') then trouverDll(sDossier + SR_Info.Name, SL_Fichier); until FindNext(SR_Info) <> 0; end; if FindFirst(sDossier + '*.dll', faAnyFile, SR_Info) = 0 then begin SL_Fichier.Add(sDossier + SR_Info.Name); end; FindClose(SR_Info); end;
J'espère que vous pourrez m'aider, merci d'avance !
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 procedure TFrm_main.F_Barre_Actions1BB_OkClick(Sender: TObject); var SL_Source, SL_Dest : TStringList; i : Integer; begin SL_Source.Create; try trouverDll(Txt_Source.Text, SL_Source); i := 0; while i < SL_Source.Count do begin ShowMessage(SL_Source[i]); // Juste pour tester si ça fonctionne i := i + 1; end; finally SL_Source.Free; end; end;
Partager