超大字符串如何转成文件

右脚小拇指 2022-06-14 09:20:38

我有一张表非常大,表字段多,记录多。然后我遍历,把数据放到TStringList里面

然后SaveToFile保存成文件。但是到保存的时候,提示 Out Of Memory

有没有什么办法,把这种超大的字符,转成文件。

...全文
178 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanqth 2023-04-07
  • 打赏
  • 举报
回复

直接写到文件去就行了啊。

tanqth 2023-04-07
  • 举报
回复
@tanqth 才发现,以前就回复过了啊,怎么双被UP到前面来了。
lizhongqian 2023-04-06
  • 打赏
  • 举报
回复

很奇怪,你为什么要把数据放到TStringList里面。这种情况你应该使用TFileStream类将数据直接写入文件里面。这种方法可以避免将所有数据加载到内存中,这样才能更好地处理大量的数据。我写了个简单的代码,你试一下。
var
Stream: TFileStream;
FileName: string;
i: Integer;
begin
FileName := 'data.txt';
Stream := TFileStream.Create(FileName, fmCreate);
try
// 循环遍历表数据
for i := 0 to MyTable.RecordCount - 1 do
begin
// 从表中获取数据
// ...

  // 将数据写入文件
  Stream.WriteBuffer(MyData, SizeOf(MyData));
end;

finally
Stream.Free;
end;
end;
使用TFileStream.Create打开一个文件流,并将其保存到Stream变量中。然后,我们循环遍历表数据,并使用Stream.WriteBuffer方法将数据写入文件中。

菈楓 2022-06-15
  • 打赏
  • 举报
回复

循环表记录,循环写入文件里面

tanqth 2022-06-14
  • 打赏
  • 举报
回复

可以直接操作文件写入的,不需要经过TStringList

  • 打赏
  • 举报
回复

获取一条记录写一次

5,927

社区成员

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

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