Q&A

  • 바이너리 파일읽어서 내용 출력하기
바이너리파일을 읽어서 그 내용을 A란 변수에 담고 싶을때 어떻게 해야하나요?

찾아보니 이런것들을 사용하라고 했는데
Reset, Readln, blockread 제가 잘못사용했는지
계속 깨져서 저장이 됩니다.

이것때문에 몇일을 고생하고 있습니다.
도와주세요~~
5  COMMENTS
  • Profile
    최용일 2009.03.19 01:06
    델파이도움말에 BlockRead를 찾아보시면 예제가 있습니다.

    또한 Reset, Readln, BlockRead 등을 이용한 전통적인 방법말고, TFileStream등을 이용하는 방법도 있습니다.
  • Profile
    날개 2009.03.19 02:11
    그방법을 사용해서 했는데 파일이 깨져서 저장이 되버립니다.
    혹시 읽어들일때 인코딩이나 byte형식을 string형식으로 변환시켜주는 함수가 있나요???
  • Profile
    최용일 2009.03.19 08:50
    글쎄요... 제대로 저장하고 읽어온다면 깨질 이유는 없을텐데요...
    코드를 올려보세요...
  • Profile
    날개 2009.03.19 18:37
    <!--CodeS-->
    var
    Buf: string;
    F:File;
    NumRead: Integer;

    begin
    AssignFile(F, gbSummaryName); // gbSummaryName << 이것이 파일위치를 포함한 파일명입니다.
    Reset(F, 1);
    blockread(F, Buf, SizeOf(Buf), NumRead);
    FFunc.AddParamBase64String(Buf); //<< Buf라는 변수에 파일의 내용을 넣어서 서버로 호출을 해야됩니다.
    CloseFile(F);
    end;
    <!--CodeE-->
  • Profile
    최용일 2009.03.19 19:24
    SizeOf(Buf) = 4 ; ==> string은 일종의 포인터 변수입니다.
    그리고 BlockRead함수에서 string형을 사용하실 거면 먼저 크기를 할당하세요...


    begin
    AssignFile(F, gbSummaryName);
    Reset(F, 1);
    SetLength(Buf, 2048); // 읽어올 크기만큼 Buf변수 크기 설정
    BlockRead(F, Buf[1], Length(Buf), NumRead); // Buf ==> Buf[1], SizeOf(Buf) ==> Length(Buf)
    FFunc.AddParamBase64String(Buf);
    CloseFile(F);
    end;