M
meme258
Unregistered / Unconfirmed
GUEST, unregistred user!
下面这个函数,我程序中调用N次,最后返回 的TStringList 没有释放,这个程序运行时间长了以后就停止不动了,用FASTMM的话,报告有 内存泄露,
如果在这个程序的最后,.free 的话,程序就报错,,,,
请教高手,
function QuDeXXUrl(var code:string;kzf,jzf:string):TStringList ;
var
urlList:TStringList;
u_code,liurl,url_xh:string;
u_k,u_j,uu:Integer;
begin
urlList := TStringList.Create;
u_code := code;
if Pos(kzf,u_code) = 0 then
begin
ShowMessage('网址开始位置错误,源代码中没有这些字符');
Result := nil;
Exit;
end;
if Pos(jzf,u_code) = 0 then
begin
ShowMessage('网址结束位置错误,源代码中没有这些字符');
Result := nil;
Exit;
end;
while Pos(kzf,u_code) <> 0 do
begin
u_k := Pos(kzf,u_code);
u_code := Copy(u_code,u_k,Length(u_code)-u_k);
u_k := Pos(kzf,u_code);
u_j := Pos(jzf,u_code);
liurl := Copy(u_code,u_k + Length(kzf),u_j-u_k-Length(kzf));
url_xh := StringReplace(liurl,'http://www.readnovel.com/novel/','',[rfReplaceAll]);
uu := Pos('/',url_xh);
url_xh := Copy(url_xh,0,uu-1);
u_code := Copy(u_code,u_j,Length(u_code)-u_j);
if Pos(url_xh,urlList.Text) = 0 then
urlList.Add(liurl);
end;
Result := urlList;
//urlList.Free;
//urlList := nil;
//FreeAndNil(urlList);
end;
如果在这个程序的最后,.free 的话,程序就报错,,,,
请教高手,
function QuDeXXUrl(var code:string;kzf,jzf:string):TStringList ;
var
urlList:TStringList;
u_code,liurl,url_xh:string;
u_k,u_j,uu:Integer;
begin
urlList := TStringList.Create;
u_code := code;
if Pos(kzf,u_code) = 0 then
begin
ShowMessage('网址开始位置错误,源代码中没有这些字符');
Result := nil;
Exit;
end;
if Pos(jzf,u_code) = 0 then
begin
ShowMessage('网址结束位置错误,源代码中没有这些字符');
Result := nil;
Exit;
end;
while Pos(kzf,u_code) <> 0 do
begin
u_k := Pos(kzf,u_code);
u_code := Copy(u_code,u_k,Length(u_code)-u_k);
u_k := Pos(kzf,u_code);
u_j := Pos(jzf,u_code);
liurl := Copy(u_code,u_k + Length(kzf),u_j-u_k-Length(kzf));
url_xh := StringReplace(liurl,'http://www.readnovel.com/novel/','',[rfReplaceAll]);
uu := Pos('/',url_xh);
url_xh := Copy(url_xh,0,uu-1);
u_code := Copy(u_code,u_j,Length(u_code)-u_j);
if Pos(url_xh,urlList.Text) = 0 then
urlList.Add(liurl);
end;
Result := urlList;
//urlList.Free;
//urlList := nil;
//FreeAndNil(urlList);
end;