많은 질문을 올려보아도 시원한 답을 주는 분이 계시지 않아 저 나름대로 공부를하고 있습니다.
메모리스트림의 사용법을 알아보려고 테스트삼아 만들어본겁니다.
그냥 단순하게 파일을 MemoryStream으로 로드해서 ABuffer로 옮겼다가
다시 MemoryStream에 담았다가 파일로 저장하는 소스코드입니다.
procedure TForm2.Button3Click(Sender: TObject);
Var
MemoryStream : TMemoryStream;
ABuffer : TBytes;
begin
MemoryStream.LoadFromFile('E:\C_DRV\바탕화면\aaa.txt');
ReadTIdBytesFromStream(MemoryStream, ABuffer, MemoryStream.Size); <============= 에러
MemoryStream.Clear;
WriteTIdBytesToStream(MemoryStream, ABuffer, MemoryStream.Size, 0);
MemoryStream.SaveToFile('E:\C_DRV\바탕화면\bbb.txt');
MemoryStream.Free;
end;
컴파일을 하면 이상이 없는데 실행을 하면
ReadTIdBytesFromStream(MemoryStream, ABuffer, MemoryStream.Size);
이 문장에서 "Access violation" 에러가 납니다.
뭐가 잘못됬는지 좀 봐주세요.
|