절름발이 프로그래머/Delphi

버퍼 내용을 record 타입으로 읽는 방법

훅크선장 2009. 7. 17. 17:15
C언어에서는 당연하고 되는 것이지만,
델파이 즉, 오브젝티브 파스칼을 쓸 때는 한번쯤 생각해보게 되는 방법이다.

C언어에서는  타입 캐스팅으로 되는 것을
델파이에서는 다음과 같이 해야된다.

tmpbuffer: array[0..1023] of Byte;
ptr : ^aRecord;

    // 파일에서 데이터를 읽어온다.
    ZeroMemory(@tmpbuffer[0], sizeof(tmpbuffer));
    BlockRead(File, tmpbuffer, datasize, readbytes);
    ptr := @tmpbuffer; // 버퍼 내용을 레코드 형식으로 해석한다.

    ptr.a
이런 식으로 버퍼의 데이터를 레코드형식으로 받아서 사용할 수 있다.