Out Of Memory 怎么办啊!

s_x_d 2002-05-20 08:44:53
var
S: string;
vStringList: TStringList;
begin
Screen.Cursor := crHourGlass;
Button2.Enabled := False;
vStringList := TStringList.Create;
try
S := '';
Table1.Open;
while not Table1.Eof do begin
S := S + Table1.FieldByName('序号').AsString +',';
S := S + Table1.FieldByName('所号').AsString +',';
S := S + Table1.FieldByName('票号').AsString +',';
S := S + Table1.FieldByName('消费金额').AsString +',';
S := S + Table1.FieldByName('消费日期').AsString +',';
vStringList.Add(s);
Table1.Next;
end;
vStringList.SaveToFile('pq.txt');
finally
Screen.Cursor := crDefault;
Button2.Enabled := True;
vStringList.Free;
end;
end;
上面的程序在执行的过程中报错 “Out Of Memory” 这个table1有2万左右条记录!

...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDGG 2002-05-20
  • 打赏
  • 举报
回复
沙罗漫蛇的密码也差不多啊:D
zhu_lj 2002-05-20
  • 打赏
  • 举报
回复
楼上的,是高手啊
喜欢魂都罗吧
nne998 2002-05-20
  • 打赏
  • 举报
回复
如果象我说的清空了s之后还出现的话,干脆直接操纵文件,肯定行,这样:


var
S: string;
F : TextFile;
begin
Screen.Cursor := crHourGlass;
Button2.Enabled := False;

AssignFile(F, 'pq.txt');
{$I-}
Rewrite(F);
{$I+}

try
Table1.Open;
while not Table1.Eof do begin
S := '';

S := S + Table1.FieldByName('序号').AsString +',';
S := S + Table1.FieldByName('所号').AsString +',';
S := S + Table1.FieldByName('票号').AsString +',';
S := S + Table1.FieldByName('消费金额').AsString +',';
S := S + Table1.FieldByName('消费日期').AsString +',';

WriteIn(F,S); //<------写

Table1.Next;
end;
finally
Screen.Cursor := crDefault;
Button2.Enabled := True;
end;


closefile(F);

end;
nne998 2002-05-20
  • 打赏
  • 举报
回复
你好象没有清空s,应该:

while not Table1.Eof do begin
S:=''; // <---------加上这句。
S := S + Table1.FieldByName('序号').AsString +',';
s_x_d 2002-05-20
  • 打赏
  • 举报
回复
u*:)P
很土 2002-05-20
  • 打赏
  • 举报
回复
何必这样呢?每一条记录写一次文件就行了。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧