【发布时间】:2019-02-26 03:01:02
【问题描述】:
我正在尝试编写更大的块以提高文件保存的速度。我有大约 9 个循环要转换,但我不知道我做错了什么
fs := TFileStream.Create(Myfile, fmCreate);
此代码有效:
for RecordGroup := 0 to TotalGroups - 1 do
begin
for RecordNumber := 0 to Length(MyArray[RecordGroup]) - 1 do
begin
fs.WriteBuffer(MyArray[RecordGroup,RecordNumber],SizeOf(MyRecord));
end;
end;
当我删除内循环以编写更大的块时,代码不起作用:
for RecordGroup := 0 to TotalGroups - 1 do
begin
fs.WriteBuffer(MyArray[RecordGroup],SizeOf(MyRecord) * Length(MyArray[RecordGroup]));
end;
我收到一般错误“流写入错误”
SizeOf(MyRecord) * Length(MyArray[RecordGroup]) 的值为 180 * 152,004 = 27,360,720
我读过的所有内容基本上都说这是正确的。任何想法我做错了什么?
提前感谢您提出的任何想法。
【问题讨论】:
-
实际上它只会让你达到2gb阅读我的Q stackoverflow.com/questions/48039254
-
LU RD,我忘了减1。我编辑更正了。这就是你说的显眼吗?
-
是的,如果没有它,代码将无法正常工作。
标签: delphi tfilestream