Bonsoir
j'ai le code suivant :
,j'utilise ce code pour lister dans une listview les mots d'un texte que j'ai récupérer et mis dans une stringlist. et donc je regarde si l'entrée du stringlist en cours dans ma boucle est déjà dans le listview , si c'est le cas j'augmente le chiffre situe dans le subitems[0]. c'est boucle calcul aussi le pourcentage de présence d'un mot dans un texte.
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 for i := 0 to WordsList.Count -1 do begin Item := WordsCountList.FindCaption(0, WordsList.Strings[i], false, false, false); if Item <> nil then begin e := StrToInt(Item.SubItems[0]); inc(e); Item.SubItems[0] := IntToStr(e); Item.SubItems[1] := FormatFloat('0.00', GetPercentage(e,WordsList.Count)); end else begin Item := WordsCountList.Items.Add; Item.Caption := WordsList.Strings[i]; Item.SubItems.Add('1'); Item.SubItems.Add(FormatFloat('0.00', GetPercentage(1, WordsList.Count))); end; end;
Mon problème c'est que si mon texte de départ fait 3000 mots ou plus , ca bloque l'application , je voudrais savoir si cette boucle peut être optimise pour accepter un texte de 30000 mots sans bloquer l'application avec un temps de calcul de l'ordre de 1 a 2 secondes pas plus.
J'ai cherche , mais tout est utile dans cette modique boucle.
Partager