Я пытаюсь записать большие куски, чтобы увеличить скорость сохранения файла.У меня есть около 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
Все, что я прочитал, в основном говорит, что это правильно.Есть идеи, что я делаю не так?
Заранее благодарим вас за любые идеи, которые вы можете иметь.