Q&A

  • 파일을 읽어와서 바이트 배열에 저장하려고 하는데 에러가 나네요 도와주세요
파일에서 데이터를 읽어와서 이 데이터를 바이트 배열에 할당하려고 합니다
그런데 다음과 같은 에러가 나네요 도와 주시면 감사합니다.
Access violation at address 0040500C in module '실행파일'. Write of address 7369684C

소스
var
aByte: Array of Byte;
aStream: TFileStream;
aSize: integer;
begin
   //파일 오픈 다이얼로그
   comOpen.FileName := '';
   if not comOpen.Execute then
      Exit;  
   aStr :=//경로/파일 이름;
   aStream := TFileStream.Create(comOpen.Filename, fmOpenRead);
   aSize := aStream.Size;
   SetLength(aByte, aSize);  
  
   aStream.Read(aByte,aSize);
   aStream.Free;
3  COMMENTS
  • Profile
    이순구 2003.01.28 21:37
    aStream.Read(aByte[0], aSize); 하시면 됩니다.
    SetLength를 호출하면 메모리를 재할당하게 되어 aByte로는 접근이 안되는 것 같습니다. 델파이 도움말에 설명이 되어있네요

  • Profile
    이중철 2003.01.28 03:18
    SetLength가 255까지 일텐데 이 방법으로 되나요
    확인해보세요 그럼 이만..

  • Profile
    조영래 2003.01.28 19:51
    고맙습니다. 답변.
    그러면 파일에서 데이터를 읽어왔을 때 255크기 사이즈 이상의 파일을 읽어
    왔을 때 이 배열의 사이즈를 파일의 사이즈 만큼 설정하는 방법이 궁금하네요
    아시는 분은 답변 부탁 드리겠습니다. 그럼