Показать сообщение отдельно
  #1  
Старый 16.12.2010, 22:46
d_e_x_t_e_r d_e_x_t_e_r вне форума
Прохожий
 
Регистрация: 16.12.2010
Сообщения: 10
Репутация: 10
Вопрос Ошибка "Stream read error"

Помогите разобраться с ошибкой чтения из потока. Компилятор пропускает, но при нажатии на кнопку прога падает. Методом перебора определил, что ошибка возникает при большом размере массива. Мне нужен неограниченный размер потока. Что не так делаю?
Код:
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;
Ответить с цитированием