hello,
j'ai fait une ptite procédure permettant de concaténer des fichiers. Je donne donc comme paramètres à cette procédure le nom du fichier à sauver, les noms des fichiers à concaténer, et le nombre de fichier.
Le défilement des la progressbar n'est pas continu, en effet, elle évolue seulement en fonction du nombre de fichier et du fichier en cours de copie. si j'ai 4 fichiers, lorsque le premier est copié, la ProgressBar passe à 25%. Mais ça peut durer un petit temps durant lequel elle n'évolu pas = le temps que met la function target.Copyfrom(source,0).
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 Procedure ConCatFiles(targetname: String; Sourcenames: Array of String; NbreFichiers: integer); Var i: Integer; target, source: TFileStream; Begin target := TFileStream.Create(targetname,fmCreate ); try i:=0; stop:=false; Repeat source := TFileStream.Create(Sourcenames[i],fmOpenread or fmShareDenyNone); ProjetVprintPersoft.ProgressBar.Position := Round((i / NbreFichiers) * 100); Application.ProcessMessages; //raffraichissement de la fenêtre try target.Copyfrom(source,0); finally source.free; end; i:=i+1; Until (i=NbreFichiers) or stop; finally target.Free; if stop then Begin deleteFile(targetname); end else Begin ProjetVprintPersoft.ProgressBar.Position := 100; end; end; End;
Ce que j'aurai voulu savoir c'est s'il est possible de décomposer cette function pour savoir à quel niveau on en est ??
est-ce assez clair?
merci
Partager