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
[12791] Re:[질문] 파일에서 값을 읽어오면 쓰레기 값이...
V6 [] 1400 읽음    2001-11-18 06:48
던켄 님의 소스에서 최소한만 수정한 것입니다.

개인적인 생각으론 별로 좋은 방법은 아닌것 같군요.

아무튼 참고하세요.

void __fastcall TMyMain::FormClose(TObject *Sender, TCloseAction &Action)
{
    FILE *out;
    int MySubData;

    if ((out = fopen("data.ini", "wt")) == NULL)
    {
        fprintf(stderr, "Cannot open input file.\n");
        return;
    }

    if(Form2->Visible) MySubData = 1;
    else MySubData = 0;

    fprintf(out, "%d", MySubData);
    fclose(out);
}


아래 읽어 오는거는 MySub폼에 넣어주세요.
MyMain 생성시 넣으면 MySub가 생성전이라서 MySub->Visible = true; 이렇게하면 즉사~~
최소한만 수정하려다보니 ...

void __fastcall TMySub::FormCreate(TObject *Sender)
{
    FILE *in;
    int MySubData;
    if((in = fopen("data.ini", "rt")) ==NULL)
    {
        fprintf(stderr, "Cannot open input file.\n");
        return;
    }

    if(fscanf(in,"%d",&MySubData)==1)
    {
        if(MySubData == 1) MySub->Visible = true;
    }
    fclose(in);
}



던켄 님이 쓰신 글 :
: 씨빌더 1주일도 안된 초봅니다.
:
: 제가 만든 프로그램은요.
: 하나의 창에서 버튼을 누르면 다른 또하나의 창이 열리는데요.
: 프로그램을 종료할 때 두번째 창이 열려있으면 1을 그렇지 않았을 경우에는 0을
: 텍스트 파일에 저장했습니다.(fprintf를 이용했습니다.)
:
: 그리고 나중에 프로그램을 실행시키면 텍스트에 저장된 값을 읽어와서
: 1이면 두번째 창이 열린 상태로 만들고 0이면 창 하나만 뜨도록 하려고 합니다.
:
: 아래는 제가 짠 소스부분입니다.
:
: void __fastcall TMyMain::FormClose(TObject *Sender, TCloseAction &Action)
: {
:         FILE *out;
:         char *MySubData;
:
:         if ((out = fopen("data.ini", "wt")) == NULL)
:         {
:                 fprintf(stderr, "Cannot open input file.\n");
:                 Close();
:         }
:
:         fprintf(out, "%d", MySub->Visible);
:
:         fclose(out);
:
: }
:
: __fastcall TMyMain::TMyMain(TComponent* Owner)
:         : TForm(Owner)
: {
:         char buf[2];
:         FILE *in;
:
:         if((in = fopen("data.ini", "rt")) ==NULL)
:         {
:                 fprintf(stderr, "Cannot open input file.\n");
:                 Close();
:         }
:         fgets(buf, sizeof(buf), in);
:         if(buf=="1")
:         {
:                 MySub->Visible = true;
:         }
: }
:
: 이렇게 했는데 if(buf=="1")에서 buf값이 0\0등 이상하게 나옵니다.
: 첨에 buf를 선언할 때 buf[1], buf[1024]등으로 선언도 해봤는데
: 역시 if문 안쪽으로 들어가지는 못하네요.
:
: 저장할 때도 마찬가지여서 fputs나 fputc로 집어넣으면 0, 1이 안들어가고 †표시만 생기더군요.
: 그래서 저장은 fprintf로 어떻게 해결했는데 이제는 읽어오는게 문제네요...
:
: 나중엔 이름, 나이, 성별 등도 저장해야되는데 간단한 숫자하나 읽어오는데도 이렇게 힘이드니...
: 걱정입니다... 부디 고수님들의 많은 조언 부탁드립니다.

+ -

관련 글 리스트
12783 [질문] 파일에서 값을 읽어오면 쓰레기 값이... 던켄 898 2001/11/18
12791     Re:[질문] 파일에서 값을 읽어오면 쓰레기 값이... V6 1400 2001/11/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.