델파이 2에서 만든 소스를 가지고 5에서 실행 시키면 에러가 발생합니다.
물론 2에서는 정상이죠.
4에서도 정상이었는데 5나 6에서는 에러가 발생하는 군요.
폼에 있는 Edit1에 쓰여지는 부분에 있는 데이타를 읽어주는 부분입니다.
TXY타입은 레코드로 선언되어 있습니다.
record = TXY
A1, A2, A3: Integer;
X, Y: Double;
end;
5로 실행시키고 디버깅할때,
AssignFile(ss, Form1.Edit.Text) 이 문장의 끝에 커서를 가져가면 'InAccessible Value' 라는 메세지가 툴팁 도움말에 나옵니다.
그리고 읽으면 쓰레기 값이 나오구요.
어떤 이유인지 고수님들의 한수 지도 부탁드립니다.
procedure RRead(var AD:PChar; var AM, AN:Integer);
var
ss: file of TXY;
i: Integer;
RR: TXY;
begin
AssignFile(ss, Form1.Edit1.Text);
Reset(ss);
AM := filesize(ss);
AN := filesize(ss) - 1;
AD := AllocMem(AM * sizeof(TXY));
BlockRead(ss, AD^, AN+1);
CloseFile(ss);
for i := 0 to AN do
begin
CopyMemory(@RR, @AD[i * Sizeof(TXY)], Sizeof(TXY));
if (RR.A3 > 20) then break;
end;
end;