function TserverFrmMain.GetNewsFileList(dt1:Longint;dt2:Longint):TStringList;
var
Temp:Longint;
S1:String;
vSearchRec: TSearchRec;
begin
Result := TStringList.Create;
S1 := DateTimeToStr(GetDate(Temp)); //得到时间文件夹名
if FindFirst('D:\test\*.*', faAnyFile and not faDirectory,vSearchRec) = 0 then
begin
repeat
Result.Add(vSearchRec.Name);
until FindNext(vSearchRec) <> 0;
FindClose(vSearchRec);
end;
//Result.Free; //这里不能加释放,会报错
end;
内次调用这个函数,内存都会增长,不知道怎么释放啊.Free语句不能写,一写就抱内存读取错误。
请指教.
var
Temp:Longint;
S1:String;
vSearchRec: TSearchRec;
begin
Result := TStringList.Create;
S1 := DateTimeToStr(GetDate(Temp)); //得到时间文件夹名
if FindFirst('D:\test\*.*', faAnyFile and not faDirectory,vSearchRec) = 0 then
begin
repeat
Result.Add(vSearchRec.Name);
until FindNext(vSearchRec) <> 0;
FindClose(vSearchRec);
end;
//Result.Free; //这里不能加释放,会报错
end;
内次调用这个函数,内存都会增长,不知道怎么释放啊.Free语句不能写,一写就抱内存读取错误。
请指教.
解决方案 »
- 又一个查询语句,拿分了!!!
- 1、listview多选删除如何实现?? 2、从txt中读取大量数据如何快速显示在listview中。3、从txt中读取大量数据如何快速显示在Treeview中
- 闪现窗体
- 如何在一个UNIT的初始化工程中创建实例?我试了几次都不成功.成了一定给分.
- 请教一个问题:如何在Delphi中引入一个库文件?如何在Delphi中查看对象的所有属性、方法?
- 请教一个全局变量的问题
- 如何在OpenPicDialog中预览Gif图片?
- 绝对送分 --- 微软 mfc ,pb pfc 我们在delphi上也扩充一下
- http://www.cuniware.com/zhaqiong/Delphi7.rar 这里下载的Delphi7.rar 为什么用rar工具解压缩时会出错!??
- 數據備份
- Delphi + 水晶报表:“未能加载数据厍信息”问题
- 如何模糊比较2个图像??
procedure TserverFrmMain.Button1Click(Sender Tobject);
var
FileList:TStringList;
begin
FileList :=TStringList.Create;
GetNewsFileList(0,0,FileLIst);
end
function TserverFrmMain.GetNewsFileList(dt1:Longint;dt2:Longint;var List:TStringList):integer;
var
Temp:Longint;
S1:String;
vSearchRec: TSearchRec;
begin
Result := 0;
S1 := DateTimeToStr(GetDate(Temp)); //得到时间文件夹名
if FindFirst('D:\test\*.*', faAnyFile and not faDirectory,vSearchRec) = 0 then
begin
repeat
List.Add(vSearchRec.Name);
until FindNext(vSearchRec) <> 0;
FindClose(vSearchRec);
end;
Result := List.count;
end;
procedure TserverFrmMain.Button1Click(Sender Tobject);
var
FileList:TStringList;
begin
FileList :=TStringList.Create;
GetNewsFileList(0,0,FileLIst);
end
function TserverFrmMain.GetNewsFileList(dt1:Longint;dt2:Longint; List:TStringList):integer;
var
Temp:Longint;
S1:String;
vSearchRec: TSearchRec;
begin
Result := 0;
S1 := DateTimeToStr(GetDate(Temp)); //得到时间文件夹名
if FindFirst('D:\test\*.*', faAnyFile and not faDirectory,vSearchRec) = 0 then
begin
repeat
List.Add(vSearchRec.Name);
until FindNext(vSearchRec) <> 0;
FindClose(vSearchRec);
end;
Result := List.count;
end;
====
不是until FindNext(vSearchRec) = 0;么?
没有释放,当然内存涨了。 不要这样写,不好。就是弄成一个参数传进来。外面创建好再传入,用完外面释放,就OK了。
Result := TStringList.Create;
如果你这么写,就得在函数外释放!!!
最好用指针
function A: TStringList;
begin
Result := TStringList.Create;
....
end;procedure B;
var
C: TStringList;
begin
C := A;
// do something;
C.Free; //用完释放,
end;