Bonjour,

J'ai un programme de traitement de fichier avec une barre de progresion de la 1ère à la dernière ligne.

Dernièrement on m'a demandé de traiter le fichier dans un ordre spécifique. J'ai donc tous simplement utiliser la méthode de tri proposer par le TStringList.

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
 
function TriFichier(List: TStringList; Index1, Index2: Integer): Integer;
Var
  S1, S2: string;
begin 
  // gestion spécifique de clef
  S1 := LectureClef(List[Index1]); 
  S2 := LectureClef(List[Index2]); 
 
  if S1 > S2 then
    Result := 1
  else
    if S1 < S2 then
      Result := -1
    else
      Result := 0;
end;
 
procedure TForm1.TrieFichier(FichierATrier : TStringList);
begin
  if ClefDeTri>'' then
    FichierATrier.CustomSort(TriFichier);
end;
Mon problème c'est que le tri du fichier prends 90 % (estimation à la louche) du temps de traitement.
Ma barre de progression devient donc "ridicule" comme dirait l'autre.

Comment suivre la progression d'un tel système de tri ?

Je fais donc appel à votre sagacité et votre expérience pour me proposer une solution intelligente.

a+