Bonjour
J ai une fuite memoire dans mon appli detectee par reportmemoryleaksonshutdown := true; dans mon formcreate.
Apres analyse j ai detecté sa provenance mais je ne sais pas comment y remedier.
C est la fonction explode suivante qui provoque cela :
de ce que je comprends la List est retournée apres avoir été crée. Mais elle n est pas detruite...
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 function Explode(ch: string; sep: string): TStringList; var p: integer; begin p := pos(sep, ch); Explode := TStringList.Create; while p > 0 do begin Explode.Add(copy(ch, 1, p - 1)); if p <= length(ch) then ch := copy(ch, p + length(sep), length(ch)); p := pos(sep, ch); end; if length(ch) > 0 then Explode.Add(ch); end;
J apelle la fonction ainsi:
Tous vos conseils sont les bienvenus car j apelle cette fonction dans une imbrication de boucles, soit 1156 fois...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 list_explode := TStringlist.Create; list_explode := explode(Stg, ';'); ...traitement... list_explode.destroy;
merci de votre aide
Partager