使用以下代码编写
dest : array of Bytes;
到文件。
c: integer;
size: integer;
如果我按字节做Byte:
filename := ExePath + 'test.txt';
AssignFile(myfile, filename);
ReWrite(myfile, 1);
Write the data array to the file
for c := 0 to length(dest) - 1 do
BlockWrite(myfile, dest[c], 1);
CloseFile(myfile);
一切正常,但在大型阵列上需要很长时间(最大20MB)。
如果我尝试写它@一旦我得到I / O错误1784:
filename := ExePath + 'test.txt';
AssignFile(myfile, filename);
size := length(dest);
ReWrite(myfile, size);
BlockWrite(myfile, dest[0], size);
CloseFile(myfile);
哪里可能有错? 提前谢谢。
答案 0 :(得分:2)
得到了......
@self:RTFM
BlockWrite(myfile, dest[0], size);
必须是
BlockWrite(myfile, dest[0], 1);
原因大小已经定义为具有重写的数组的大小....
filename := ExePath + 'test.txt';
AssignFile(myfile, filename);
size := length(dest);
ReWrite(myfile, size);
BlockWrite(myfile, dest[0], 1); <-- 1 "dataset" of length (size) as defined before
CloseFile(myfile);