Q&A

  • C 함수 포팅좀...

파일을 바이너리형태로 읽어서
버퍼에 저장하는 C 함수를 델파이로
포팅하려고 하는데 잘 안되네요...

파일을 바이너리 모드로 읽어서 m_pBuff 라는 버퍼에 저장하면 됩니다.

Int read(char *fn){
      
     File *f ;
     char  *m_pBuff ;
     int i,j ;
  
        f = fopen(fn, "rb");
        m_pBuff = new char[m_nBufSize];
        i = 0;
        while (i < m_nBufSize)
        {
                j = fread(m_pBuff + i, 1, 1024, f);
                if (j <= 0)
                {
                          return -2;
                }
                i += j;
        }
        fclose(f);

}
4  COMMENTS
  • Profile
    김운필 2004.02.21 03:01
    C 스타일과 비슷하게 하려면
    FileOpen, FileSeek, FileRead, FileClose 함수 이용하세요  

    다음과 같이 되겠군요.

    function read(const fn : string) : integer;
    var
         f : Integer;
         m_pBuff : array [0..1024 * 1024 - 1] char; // => 크기는 나름대로(1M 이하)
         fSize : integer;
    begin
       ZeroMemory(@m_pBuff, sizeof(m_pBuff ));
       f := FileOpen(FnfmOpenRead);
       if f = -1 then
       begin
          Result :=  -1;
          Exit;
       end;    
      
       fSize := FileSeek(f, 0, 2);  // 파일 마지막

       FileSeek(f, 0, 0);   // 처음으로 되돌림

       FileRead(f, m_pBuff, fSize);

       FileClose(f);

       Result := fSize;
    end;



  • Profile
    이중철 2004.02.18 22:47
    쩝 델파이는 한방 입니다

    var MS : TMemoryStream;
    begin
      MS := TMemoryStream.Create;
      MS.LoadFromFile(fn);
      .. 사용은 알아서
    end;

  • Profile
    윤상현 2004.02.18 23:50
    이렇게 하면 읽을 파일이 텍스트 이던지,
    바이너리이던지 상관없이 바이너리형태로
    읽어들인단 말씀이신가요?




  • Profile
    이중철 2004.02.20 02:52
    Text 화일이니 Binary화일이니 이미지화일이니 그런것들은
    프로그램에서 어떻게 Assign 하는가의 문제 입니다.
    어떤화일이든지 다 Bianary로 들어 있어요

    var
      pc : pchar; // array of char
      pb : array of byre;
    begin
      MS.LoadFromFile(fn);
      pc := MS.poiter;
      .. 이후 Char형식으로 쓰면 될것이고
      pb := MS.poiter;
       ..이후 Byte형식으로 쓰면 되겠죠

       아니면 형변환해서 써도 되고요
       byte(pc[2])  또는 char(pb[2])

      단순히 어떻게 쓰는냐에 따르겠죠
    end;

    쩝 아무래도 현문에 우답이 된것 같네요

    • 엘짱
    • 2004.02.19 22:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권영길
      2004.02.19 22:45
      없는페이지는 404 에러가 정상이지만 그건 서버 맘(?)입니다. 위의 경우의 500에러는 서버에서 클라이언트...
    • 하창호
      2004.03.03 17:27
      MS 익스플로어만 전용으로 accept하는 웹이 있다고 하셨는데 인디 콤포넌트로 접속하려면 그 부분은 어떻...
    • mrdelphi
    • 2004.02.19 18:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박민규
    • 2004.02.19 17:33
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 03:58
      SELECT GUBUN,        MAX(DECODE(LOC, 'G1', NM))  G1,  ...
    • 박민규
      2004.02.24 15:59
      이런 간단한 방법이 있었다니... 다시한번 오라클의 놀라운 능력에 감탄할 뿐입니다... 물론 이런 쿼리를 ...
    • 김수현
      2004.02.19 22:42
      제가 예전에 엑세스로 고민했던 사항이네요. 고민하다가 VB로 루프를 돌면서 새로운 테이블에 생성하는 부...
    • 박민규
      2004.02.20 15:55
      우선 답변 감사드립니다... 하지만 궁금한게 또 있어서리... 그럼 오라클로는 해결할만한 쿼리가 있는...
    • 성더기
      2004.02.20 18:34
      위치정보가 G1~G4까지 고정적이라면 각각을 가져오는 쿼리를 인라인 뷰로 만들고 그것을 시간을 기준으로...
    • 박민규
      2004.02.24 15:55
      먼저 답변 정말 감사드립니다... 근데 님의 조언대로 엑세스에서 해봤더니 에러가 나더군여... 후밍 제...
    • 손희석
    • 2004.02.19 16:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.02.19 18:24
      안녕하세요. 최용일입니다. 델파이에 잘 적용되어져서 사용되고 있다고 생각하는데요... 가장 대표적...
    • 손희석
      2004.02.19 23:12
      우선 답변에 대해 감사드립니다. 델파이의 OOP메카니즘에 관한 책이나 원서를 좀 추천 부탁드립니다 ^^ ...
    • 하창훈
    • 2004.02.19 07:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김원석
    • 2004.02.19 03:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr. Ziker
      2004.02.20 21:33
      예전에 작업했던 소스중에 있더군요.. lbShowCTime.Caption := SecToTime(Round(ZMediaPlayer.CurrentPo...
    • 김원석
      2004.02.24 22:49
      답해주신 거 감사합니다. ^^ 하지만 zmediaplayer가 어떤건지 잘 모르겠구요..^^   Window...
    • superman
    • 2004.02.19 01:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 온진욱
    • 2004.02.19 00:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 01:16
      안녕하세요. 패키지 통째를 인스톨하지 않는한 대부분 개별 컴퍼넌트는 dclusr.dsk 에 포함되어 컴파일 됩...
    • help me
    • 2004.02.19 00:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 00:53
      안녕하세요. ^는 포인터 변수를 통한 값의 참조이고 @는 포인터 변수의 주소값을 대입하는 것입니다. ...
    • 정민섭
    • 2004.02.19 00:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤상현
    • 2004.02.18 22:26
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김운필
      2004.02.21 03:01
      C 스타일과 비슷하게 하려면 FileOpen, FileSeek, FileRead, FileClose 함수 이용하세요   ...
    • 이중철
      2004.02.18 22:47
      쩝 델파이는 한방 입니다 var MS : TMemoryStream; begin   MS := TMemoryStream.Create; ...
    • 윤상현
      2004.02.18 23:50
      이렇게 하면 읽을 파일이 텍스트 이던지, 바이너리이던지 상관없이 바이너리형태로 읽어들인단 말씀이신...
    • 이중철
      2004.02.20 02:52
      Text 화일이니 Binary화일이니 이미지화일이니 그런것들은 프로그램에서 어떻게 Assign 하는가의 문제 입...
    • 김수현
    • 2004.02.18 22:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 00:41
      안녕하세요. 저도 확인해볼려고 하는데 Delphi 버젼이 몇이지요? 전 6.0 쓰는데 FixedCols 란 프로퍼티는...
    • 김수현
      2004.02.19 17:58
      죄송합니다. 제가 질문을 제대로 못했나보네요. 그러니까 DBGrid에서 StringGrid의 속성을 사용하기 위...
    • 송현미
    • 2004.02.18 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Galaxy
      2004.02.18 20:50
      처음에 저도 MYSQL 사용하기 위해서 모든 서점을 다지고 다녀죠 그런데 서점에는 책이거의 없다라고요 (2...
    • 송현미
      2004.02.18 20:57
      우선 감사 드리구요 영어가 짧기는 하지만... 책도 보고.... www.MySQl.Com에서 다운받아서 해보도록 하...
    • Crazy
      2004.02.19 01:35
      등록하라는 메시지인데요.... 정식버젼이 아닌가보네요..
    • 엑기스
    • 2004.02.18 18:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.18 19:08
      전 잘됩니다만... Panel과 Edit의 TabOrder를 둘다 0으로 주세요 또는 델파이6(5에도 있는지는 모르겠...
    • 엑기스
      2004.02.19 01:04
    • 윤상현
    • 2004.02.18 18:14
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 2004.02.18 23:34
      일단 아래처럼 만드니.. 문제가 없네요... 단 문제가 있다면.. 올려주신 hex 파일은 사용하지 않았다는 거...
    • 윤상현
      2004.02.18 23:56
      아래 코드로 프로그램을 했더니 잘 변환이 되더군요.... 감사... 감사.... 그런데 제가 하려던 것은 ...
    • 2004.02.19 00:33
      인텔 헥사 파일의 포멧을 올려 드리겠습니다.. 지금 제가 그것을 이용해서 코드를 짤 마음이 아니라서.. ...
    • 이중철
      2004.02.18 22:44
      대충 프로그램 Hex -> Bin은 만들었거든요 Bin -> Hex도 같은 방법으로 하면 됩니다. OpenDialog...
    • 2004.02.18 07:51
    • 0 COMMENTS
    • /
    • 0 LIKES