Bonjour à toutes et à tous,
Je teste pas mal des anciennes applications en cherchant d'autres méthodes.
Dans un dossier j'ai un nombre de fichiers VTS_01_*.VOB que j'aimerai afficher en ligne dans un Tedit comme ceci :
Mais il peut y avoir plus de 3 fichiers VTS_01_*.VOB dans ce dossier."concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB"
J'utilise la fonction :
Utilisation :
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 Function CompteFichiers(Chemin:String):Integer; Var S:TSearchRec; Begin Chemin:=IncludeTrailingPathDelimiter(Chemin); Result:=0; // Recherche de la première entrée du répertoire If FindFirst(Chemin+'VTS_01_*.VOB',faAnyFile,S)=0 Then Begin Repeat // Il faut absolument dans le cas d'une procédure récursive ignorer // les . et .. qui sont toujours placés en début de répertoire // Sinon la procédure va boucler sur elle-même. If (S.Name<>'.')And(s.Name<>'..') Then Begin If (S.Attr And faDirectory)<>0 // Dans le cas d'un sous-repertoire on appelle la même procédure Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName) // Sinon on compte simplement le fichier Else Inc(Result); End; // Recherche du suivant Until FindNext(S)<>0; FindClose(S); End; End;
Le nombre de fichiers est bien détecté mais je patine pour les retranscrire comme le modèle dans le Tedit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TForm1.Button2Click(Sender: TObject); begin // "concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB" ShowMessage(IntToStr(CompteFichiers(chappli))+ ' Fichier(s) de type VOB'); end;
Merci d'avance,
@+,
cincap
Partager