Q&A

  • BlockRead사용시 뒤집혀서 읽혀지는 이유는?
BlockRead를 사용하여 Record단위로 화일을 읽어 오는데요...쩝

Binary화일안에 '00 00 00 01' 라고 된걸 읽어 와서(4Byte씩) 출력하니

'1000000'값의 십진수 값이 출력되네요...뒤에서 부터 읽었다는것인데...쩝



어떻게 해야 하나요?

1  COMMENTS
  • Profile
    최용일 2000.03.09 23:43
    아마도 읽어 오실때 Integer등을 사용하시어 읽어오신것 같군요...

    값이 메모리에 저장될 땐 하위바이트부터 저장됩니다... 그래서

    Integer등을 이용하여 한번에 4바이트를 읽어오면 반대로 출력됩니다.

    integer같은 것을 사용하지 마시고 바이트배열을 이용하시면 원하시는

    결과를 얻을 수 있을 것입니다.

    아래와 같이 하여 생성된 텍스트 파일을 덤프해 보시면 이해가 되실겁니다.

    var

    f: file;

    i: integer;

    begin

    assignfile(f, 'c:text.txt');

    rewrite(f, 1);

    i := $11223344;

    blockwrite(f, i, sizeof(i));

    closefile(f);

    end;





    전성재 wrote:

    > BlockRead를 사용하여 Record단위로 화일을 읽어 오는데요...쩝

    > Binary화일안에 '00 00 00 01' 라고 된걸 읽어 와서(4Byte씩) 출력하니

    > '1000000'값의 십진수 값이 출력되네요...뒤에서 부터 읽었다는것인데...쩝

    >

    > 어떻게 해야 하나요?