Bonjour,
Voici mon souci:
Dans 1 datamodule:
J'ai déjà un doute sur la validité de l'argument et le resultat (tstringlist) de cette fonction.
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
30
31
32
33
34
35 slDDL,slCS,slCRLF:TStringList; ... function RemoveCRLF(input:TStringList):TStringList; ... implementation function RemoveCRLF(input:TStringList):TStringList; var i:Integer; aTemp:string; const crlf=#10; begin slCRLF.Clear; for i := 0 to input.Count - 1 do begin aTemp:=input.Strings[i]; if Pos(crlf,aTemp)<>0 then while Pos(crlf,aTemp)<>0 do begin slCRLF.Add(LeftStr(aTemp,Pos(crlf,aTemp)-1)); Delete(aTemp,1,Pos(crlf,aTemp)); end; slCRLF.Add(aTemp); end; Result:=slCRLF; end; ... initialization ... slDDL:=TStringList.Create; slCS:=TStringList.Create; slCRLF:=TStringList.Create; finalization slDDL.Free; slCS.Free; if Assigned(slCRLF) then slCRLF.Free; end.
Bref.
J'appelle cette fonctionLors du 1er appel, l'ensemble fonctionne selon mes désirs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part slDDL:=RemoveCRLF(slDDL);
Mais au 2nd appel, la stringlist input est ok jusqu'au moment du clear de slCRLF
Dès lors, input est vide, mais aussi slDDL
Quelqu'un voit-il l'origine du problème ?
C'est d'ailleurs cette bizarrerie qui m'a conduit à libérer sous condition slCRLF
Partager