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
[55876] Re:파일을 불러와 화면에 뿌리는중입니다만. 짤리네요...
kylix [] 1307 읽음    2009-01-22 18:03
ftell함수가 어떠한 일을 하는지 먼저 공부하셔야 할 듯한데요...

아래와 같이 하셔야지 파일크기가 제대로 들어갈겁니다.
fseek(stream , 0, SEEK_END);
int file_size = ftell(stream);


헤딩슛 님이 쓰신 글 :
: BOOL CMmmmDoc::FileOpen(LPCTSTR lpszFileName)
: {
:     m_strFileName = lpszFileName ;     //파일 열기 관련 2
:                
:      FILE *stream = fopen(m_strFileName, "rb");           
:
:     int file_size = ftell(stream);   //여기서 는 값이 들어갑니다  -858993460
:                                                                   디버깅에서 file_size 벨류값....
:     char *buffer = new char[file_size]; //파일 싸이즈가 안넘어옴 ..... 그러므로 밑에 file_size도 무의미...
:     fseek(stream,0,SEEK_SET);
:
:    
:     //memset(buffer,0,sizeof(char)*200);      //이부분 sizeof
:
:     while(!feof(stream))
:     {
:         if(fread(buffer, sizeof(char),file_size,stream) == NULL) 
:
:             return FALSE;
:            
:         m_strText.Format("%s", buffer);   //  Format
:
:
:     }
:     UpdateAllViews(NULL);
:
:     fclose(stream);                   
:
:     return TRUE;
: }    
: 원래 동작하던걸 큰용량의 파일을 못불러와
: 파일사이즈 측정후 그만큼의 버퍼를 확보해서 화면에 뿌려줄려는 의도로 고치기 시작했는데요
:
: 파일 싸이즈를 int 선언뒤 new char 에서 값이 0이 됩니다.
: 값을 화면에 안넣고 맴돌다가 마지막것만 화면에 뿌립니다 ㅡㅜ.
:
: 버퍼 선언하는 부분(file_size sizeof 와 strText.Format부분... 어떻게 조치해야 할가여 ㅡㅜ..

+ -

관련 글 리스트
55872 파일을 불러와 화면에 뿌리는중입니다만. 짤리네요... 헤딩슛 1068 2009/01/22
55876     Re:파일을 불러와 화면에 뿌리는중입니다만. 짤리네요... kylix 1307 2009/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.