Q&A

  • 이럴경우엔 어떻케 코딩해야 하는지여?
흠...~ 아래와 같은식의 c 소스를 델파이로 옮기구 있는데여...~

FILE *m_fp;
m_fp = fopen(FileName, "wb");

char c = "C";
int    i = 120;

fwrite(&c, sizeof(char), 1, m_fp);
fwrite(&i, sizeof(int), 1, m_fp);
fclose(m_fp);

이 것은 파일을 쓰기형식의 바이너리 모드로 열어서...~
문자하나와 정수를 바이너리 형태로 저장하는 것이라고 알고 있는데..~
이것과 같은 일을 하는 델파이 소스코드를 맹그는것이.. 참 어렵네여...

좀처럼 감이 잘오지 않습니다.. 도와주셔용...~

2  COMMENTS
  • Profile
    최용일 2002.10.08 20:20
    안녕하세요. 최용일입니다.

    그냥 API로 하시던가 델파이파일입출력 표준함수를 사용하시던가 하면 됩니다. 뭐 방법이야 많죠...

    const
        c: Char = 'C';
        i: Integer = 120;
    var
        m_fp: THandle;
    begin
        if not FileExists(FileName) then
            m_fp := FileCreate(FileName)
        else
            m_fp := FileOpen(Filename, fmOpenWrite);
        FileWrite(m_fp, c, SizeOf(char));
        FileWrite(m_fp, i, SizeOf(int));
        FileClose(m_fp);
    end;

    ^^ 항상 즐코하세요...

  • Profile
    조건일 2002.10.09 19:07
    흠.. 훨씬 더 간단한 방법이 있었군여..
    혼자서 고민하다가.. 코드를 막 섞어서 일단은 해결은 했씁니다..
    머 이런 방법도 있구나 하구 보심.. *^^*

    // 파일 쓰기
    procedure TForm1.WriteBinaryFormat(Sender: TObject);
    var i, readbytes : Integer;
        iBuffer : Integer;
        szStr : array[0..256] of char;
        fp1 : File;
        TheHandle : THandle;
        ik : DWORD;
    begin
      // 일단 기본 포멧으로 파일을 열고..
      AssignFile(fp1, 'c:        est.txt');
      // 파일의 성격을 정한다음...
      Rewrite(fp1);
      // 파일의 핸들을 얻어서.. 바이너리 모드로 핸들을 얻은다음...
      TheHandle := TFileRec(fp1).Handle;

      iBuffer := 1144526;

      WriteFile(TheHandle, iBuffer , sizeof(iBuffer ), ik, NiL);
      // ik => DWORD 형의 변수로서 기록한 길이를 반환한다..
      if ik < 1 then begin
         ShowMessage('쓰기 에러..');
         exit;
      end else begin
         ShowMessage('쓰기성공 : ' + IntToStr(ik) + 'Byte...');
      end; //if

      szStr := ' 안녕 하쇼.. 조건일 입니다요..';

      WriteFile(TheHandle, szStr, sizeof(szStr), ik, NiL);
      if ik < 1 then begin
         ShowMessage('쓰기 에러..');
         exit;
      end else begin
         ShowMessage('쓰기성공 : ' + IntToStr(ik) + 'Byte...');
      end; //if

      CloseHandle(TheHandle);
    end;

    procedure TForm1.ReadBinaryFormat(Sender: TObject);
    var i : Integer;
        nBytesRead : DWORD;
        iBuffer : Integer;
        szBuffer : array[0..256] of char;
        fp1 : File;
        TheHandle : THandle;
    begin
      AssignFile(fp1, 'c:        est.txt');
      Reset(fp1);
      TheHandle := TFileRec(fp1).Handle;
      ReadFile(TheHandle, iBuffer , sizeof(iBuffer ), nBytesRead, NiL);
    //  ReadFile(TheHandle, iBuffer, sizeof(Integer), nBytesRead, NiL);
      ReadFile(TheHandle, szBuffer, sizeof(szBuffer), nBytesRead, NiL);
      CloseHandle(TheHandle);

      ShowMessage(IntToStr(iBuffer));
      ShowMessage(szBuffer);

    end;


    • 브래드
    • 2002.10.08 00:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.10.08 22:40
      3D 구현시 직접 프로그래밍하여 구현 할 수도 있지만 계산(특히 행열부분) 부분도 많고 속도도 빠르지 않...
    • ybkim
    • 2002.10.07 23:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김해우
      2002.10.09 02:38
      그냥 가기가 뭐해서... 팁란에 ADO라고 검색해보세요... 그럼...
    • 조건일
    • 2002.10.07 23:19
    • 2 COMMENTS
    • /
    • 1 LIKES
    • 최용일
      2002.10.08 20:20
      안녕하세요. 최용일입니다. 그냥 API로 하시던가 델파이파일입출력 표준함수를 사용하시던가 하면 됩니...
    • 조건일
      2002.10.09 19:07
      흠.. 훨씬 더 간단한 방법이 있었군여.. 혼자서 고민하다가.. 코드를 막 섞어서 일단은 해결은 했씁니다.....
    • 김상수
    • 2002.10.07 20:28
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2002.10.07 20:57
      만약 벤드 속석이 디테일이라고 가정해봅시다 그러면 쿼리의 내용이든지 어떤내용이던지 한번 찍히고 ...
    • 김상수
      2002.10.07 21:26
      잘은 모르겠네여 ^^;;; 공부를 많이 해야 할텐데... 멀 보고 해야할지도...^^;;; 암튼 답변...
    • 시베리아들개
      2002.10.07 20:55
      Print를 하고 났는데...무슨 AfterPrint이벤트냐고요... AfterPrint이벤트는 이렇게 한번 접근을...
    • 강민수
    • 2002.10.07 20:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • r김해
      2002.10.07 20:44
      안녕하세요... 김해우입니다.. 그냥 지나가기가 그래서 간단하게 코딩합니다. 마우스가 폼 영역밖에 ...
    • 김상수
    • 2002.10.07 19:57
    • 4 COMMENTS
    • /
    • 0 LIKES
    • KYH
      2002.10.07 20:36
      좀 엽기적인방법이 있긴한데여 --;;;;;;;;;; (-----)---------  1번 | (중식)| 짜장면| ...
    • 김상수
      2002.10.07 21:21
      procedure TForm4.여기가아니구여 라인before(Sender: TCustomQuickRep;   var PrintReport:...
    • KYH
      2002.10.08 19:14
      --;;;; 좀더 엽기적으루 가보지여 페이지 footer 의 afterprint 에서 linechk := ''; 하시면 ...
    • 김상수
      2002.10.09 03:56
      신경써주셔서 감사합니다.. 첫Row에 찍히는 것은 안되는군요 첫Row에 찍히는게 아니라 두번째 Row...
    • 안두식
    • 2002.10.07 19:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • blackjewel
      2002.10.08 02:07
      안녕하세여? 저도 그거 때문에 오래 고생해서 몇자적습니다. dbgrid에서 다중선택을 한다고 해도 qui...
    • 신양수
    • 2002.10.07 19:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박준영
    • 2002.10.07 19:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강형철
      2002.10.08 19:29
      이문제는 기존 델파이 5.0에서 MS Access를 연결할때 Native Access 드라이브를 사용해서 한걸로 보입니다....
    • 송재진
    • 2002.10.07 03:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최병철
      2002.10.07 21:52
      자료실에 특정 화일을 검색하여 경로명을 출력하는 예제 자료가 있읍니다. 참고 하세요.
    • 최용일
      2002.10.07 11:49
      안녕하세요. 최용일입니다. 질문안에 해답이 있네요... 이미지파일 불러올때 아래와 같이 하시죠? ...
    • 이추형
      2002.10.08 02:30
      access툴 자체에 비밀번호 설정이 있습니다. 비밀번호를 지정하시고 ODBC에서 확인하시면 될것 같습니다.
    • 송득보
      2002.10.08 04:56
      답변주셔서 감사한데요.. 그런 문제가 아니라.. 프로그램 내부에서 동적으로 .mdb 파일을 만들어 테...
    • 이추형
      2002.10.08 02:36
      데이타 타입이 datetime 또는 date형의 경우 아래와 같이 입력이 가능합니다. 참고로 datetime의 경우 '20...
    • 이성근
      2002.10.08 18:03
      님께서 말씀하시는 Date형식이 아니라 제가 원하는 방식은 문자형(string)으로 정의가 되어있는 필드를 ...
    • 최용일
      2002.10.07 12:01
      안녕하세요. 최용일입니다. interface나 implementation섹션에서 변수 하나 선언하시고 유닛의 initiali...
    • 김헌주
      2003.02.19 04:05
      ole.ole.CompactDataBase(s, App_Path + 'db1.$$$', , , ';pwd=xxxx');
    • 최용일
      2002.10.07 12:14
      안녕하세요. 최용일입니다. 쫌 질문이 막연한거 같은데... 얻어오고 싶다는 웹브라우져가 웹브라우져의 ...
    • kholeeyo
    • 2002.10.06 09:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.10.07 12:16
      안녕하세요. 최용일입니다. 델파이 소켓이나 인디소켓을 사용하세요. 둘다 예제 있으니까 예제보시면서 ...
    • 김동완
    • 2002.10.06 02:57
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.10.07 12:50
      안녕하세요. 최용일입니다. 동적배열 쓰셨는데... 메모리 할당하고 해제하는 부분이 없네요... 그리...
    • 김동완
      2002.10.07 19:04
      제가 워낙 초짜라서...죄송...-_-; 최용일님께서 알려주신 방법대로... 다시 코딩해 봤는데요... SizeOf...
    • 최용일
      2002.10.07 19:47
      안녕하세요. 최용일입니다. 어떤 에러가 난다는 말씀이신지??? 테스트 다 해보고 올린건데... SizeOf...
    • 김동완
      2002.10.07 19:57
      sizeof는 제가 이해를 잘못햇군여...쪽팔리당...-_-;;죄송.. sizeof는 아니구여... BlockWrite(MyFile2...
    • 김동완
      2002.10.07 20:39
      AssignFile(MyFile2, ListBox1.Items.Strings[i]+'.sec'); Rewrite(MyFile2,1);  <== 여기에...