Помогите разобраться с ошибкой чтения из потока. Компилятор пропускает, но при нажатии на кнопку прога падает. Методом перебора определил, что ошибка возникает при большом размере массива. Мне нужен неограниченный размер потока. Что не так делаю?
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var f1,f2:File;
s1,s2:string;
Streaml, Stream2: TFileStream;
IntBuf: array of byte; // если пишу так - ошибка "Stream read error"
// IntBuf: array [0..255] of byte; // если пишу так - ошибка
// IntBuf: array [0..64] of byte; // РАБОТАЕТ! Но этого мало, мне нужно неограниченный размер потока!
begin
s1:=edit1.Text;
s2:=edit2.Text;
AssignFile(f1,s1);
AssignFile(f2,s2);
try
Streaml := TFileStream.Create(s2, fmOpenRead);
Streaml.ReadBuffer(IntBuf, SizeOf(IntBuf));
try
Stream2 := TFileStream.Create(s1, fmOpenWrite or fmCreate);
Stream2.Seek(0, soFromEnd);
Stream2.WriteBuffer(IntBuf, SizeOf(IntBuf));
finally
Stream2.Free;
end;
finally
Streaml.Free;
end;
Showmessage ('Успешно!');
end;