C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24952] [답변]
정성훈.해미 [sage5nor] 920 읽음    2003-03-27 13:06
그냥 쓰기를 하면 파일 처음부터 써 버립니다.
파일의 마지막으로 이동한 후 쓰기를 하세요.
그러면 원래 파일에 추가 되는 것입니다.

예제를 올립니다.
참고하세요.


<예제>

TFileStream *outHandle;

outHandle = new TFileStream("test.bin", fmOpenWrite);

outHandle->Seek(0,soFromEnd); // 포인터를 파일 마지막으로 옮기는 부분

outHandle->Write(buffer,sizeof(buffer)); //쓰기...

delete outHandle;


님이 올리신 소스대로 하자면.

쓰기 작업전에

pFile->Seek(0,soFromEnd); // 파일 마지막으로 포인터를 옮기는 부분.

위의 코드를 추가 하시면 될 듯...


<부분 코딩>

    TFileStream *pFile;

    if(FileExists("test.bin")) // 파일이 존재하면...
    {
        pFile = new TFileStream("test.bin", fmOpenWrite); // 쓰기모드로 열기...
        pFile->Seek(0,soFromEnd); // 포인터를 파일 마지막으로 옮기기...
        pFile->Write(buffer,sizeof(buffer)); //쓰기...
    }
    else  //파일이 없으면...
    {
        pFile = new TFileStream("test.bin", fmCreate); // 파일 만들기...
        pFile->Write(buffer,sizeof(buffer)); //쓰기...
    }

    delete pFile;



<참고>

soFromEnd   // 마지막으로..
soFromBeginning   // 처음으로...   


더 자세한 내용은 빌더 [F1] 도움말을 참고 하세요..



바램 님이 쓰신 글 :
: 전 test.bin 화일을 생성한뒤 계속 업데이트 하고 싶습니다.
: 그래서 화일로 관리하고 싶은데요..
: 우선 buff[100]에는 binary 데아타가 계속 들어옵니다
:
: //없으면 만들고 있으면 첨가합니다
: TFileSream *pFile= new TFileStream("test.bin",fmCreate);
: pFile->Write(buff,100);       //바이너리 데이타를 test.bin 적습니다.
:
: 다음에 또 buff[100]에 데이타가 들어오면 화일을 업데이트 해야 합니다.
: 다음에 들오올 화일을 어떻게 붙여야지 잘 모르겠습니다.
:
: 다음에 데이타가 들어오면 위 구문을 다시 돌리니
: 마지막에 들오온 데이타만 저장 되더군여....
:
:
:

+ -

관련 글 리스트
24948 [질문]화일 저장 바램 759 2003/03/27
24952     [답변] 정성훈.해미 920 2003/03/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.