|
그냥 쓰기를 하면 파일 처음부터 써 버립니다.
파일의 마지막으로 이동한 후 쓰기를 하세요.
그러면 원래 파일에 추가 되는 것입니다.
예제를 올립니다.
참고하세요.
<예제>
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]에 데이타가 들어오면 화일을 업데이트 해야 합니다.
: 다음에 들오올 화일을 어떻게 붙여야지 잘 모르겠습니다.
:
: 다음에 데이타가 들어오면 위 구문을 다시 돌리니
: 마지막에 들오온 데이타만 저장 되더군여....
:
:
:
|