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
[50901] Re:Re:원인은 알았습니다만..
장성호 [nasilso] 2181 읽음    2007-10-16 10:08
저도 몰랐던 사실이네요

TStringList 의 SaveToFile이라는 함수코드를 보면  TFileStream을 씁니다.

그런데 TFileStream은 CreateFile이라는 api로 file을 만드는데
항상 fmCreate모드로 만들더군요

TFileStream *fs=new TFileStream(sFname,fmCreate);  //이런식으로요

그런데 이렇게 할경우 숨김파일일 경우 Create에러가 나네요
하지만 파일을 ReadWrite모드로 열면 문제가 없습니다.

TStringList 소스를 수정할수는 없고
아래와 같이 TFileStream을 써서 저장하면 됩니다.

void __fastcall TForm1::AddNewLog(String sNewData)
{
    String sFname="C:\\test.txt";
    TStringList *sLst=new TStringList;
    sLst->LoadFromFile(sFname);
    if(sLst->Count)ShowMessage(sLst->Strings[0]);
    sLst->Add(sNewData);
    if(sLst->Count>300)
       sLst->Delete(0);


   //저장하는 부분
    TFileStream *fs=new TFileStream(sFname,fmOpenReadWrite);
    sLst->SaveToStream(fs);
    delete fs;

    delete sLst;


}
//---------------------------------------------------------------------------


그럼...


조상진 님이 쓰신 글 :
: 안녕하세요.. __);
:
: 이번에도 도움주시다니 정말 감사드립니다.. ㅠ.ㅠ~
:
: 우선 오류 원인은 알았습니다.  파일이 숨김 파일로 되어 있기 때문에 읽기는 되는데 쓰기는 되지 않는 것이었습니다.
:
: 이건줄도 모르고 헬프를 보니 파일명 지정에 대한 언급이 일체 없길래 무지 실망했었거든요.. ;;;
:
: 그런데.. 이런경우는 어떻게 해결을 해야 하나요?
:
: 저장전에 숨김속성을 제거하고, 저장한 후에 다시 숨김속성을 지정해야 하는 것인지요?
:
: 파일에 저장할때 속성을 숨김으로 주어야 합니다.
:
: 그럼.. 부탁드리겠습니다... __);

+ -

관련 글 리스트
50886 TStringList 파일 저장에 대해 질문 드립니다. 조상진 2319 2007/10/15
50888     Re:TStringList 파일 저장에 대해 질문 드립니다. 장성호 2546 2007/10/15
50899         Re:원인은 알았습니다만.. 조상진 2077 2007/10/16
50901             Re:Re:원인은 알았습니다만.. 장성호 2181 2007/10/16
50902                 Re:오오.. 그렇군요..;; 조상진 1811 2007/10/16
50903                     Re:Re:오오.. 그렇군요..;; 장성호 1956 2007/10/16
50905                         Re:다시한번 감사드립니다. 조상진 2090 2007/10/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.