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
[13613] Re:파일을 바이너리 읽기^^
타짜 [] 1143 읽음    2001-12-12 16:49
heartsim 님이 쓰신 글 :
: 안녕하세요.빌더 초보입니다.
: 아래와 같이 OpenDialog1->FileName으로 파일을 오픈해서
: 그 파일을 바이너리로 읽었습니다.
: 그리고 그 내용이 mem포인터에 들어가 있는데,,,
: 이것을 RichEdit에 출력할려고 하는데, char타입을 String타입으로 바꿀수 없다고 하네요.
: 방법이 없을가요?
:
:         FILE *file;
:         char *mem;
:
:         mem=(char *)malloc(filename.Length());
:
:         file=fopen(filename.c_str(),"rb");
:         fread(mem,filename.Length(),1,file);
:         EditForm->RichEdit1->Lines=mem;
:
:         free(mem);
:
: 그리고 한가지 더 질문이 있는데,
: RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
: 이것과 같이 하면 텍스트로 읽어서 RichEdit에 출력이 되는데,
: 바이너리로 출력하는 방법은 없나요?
:
:
: 즐거운 하루되세요.

안녕하세요.. 저역시 빌더 초보입니다...
위의 내용을 보니 좀 이상한데가 몇군데 보이긴 한데.. ㅡㅡ''
우선 메모리 할당하는 부분이 좀 이상합니다.. 뭐 저렇게 해도 상관은 없지만 보니까.. 님의 의도는 File 의 내용을 한방에 모두 읽어서 하려는 모양인데.. 그러기엔 좀 이상하네요..

그리고 EditForm->RichEdit1->Lines = mem; 이라는 구문 역시 이상합니다..
차라리 EditForm->RichEdit1->Lines->Add( mem ); 이렇게 하려고 한 것이 아닌지...

아래에 제 나름대로 한번 적어봤습니다.. 별로 참고 할껀 못되고.. 그냥 한번 적어봅니다..

FILE *fp;
char line[256];

if(( fp = fopen( filename.c_str(), "rb" )) == NULL )
{
   MessageBox( Handle, "File open error", "", MB_OK );
   return;
}

ZeroMemory( line, sizeof( line ) );
while( !feof( fp ) )
{
   fgets( line, sizeof( line ), fp );
   Form1->RichEdit1->Lines->Add( line );
}

fclose( fp );
delete fp;

이렇게 하는 것은 어떻지.. ㅡㅡ'' 테스트는 안해본겁니다.. 그냥 생각나는 대로 적어서리... --;
그럼 즐프하세요... 아마 고수님들이 더 좋은 리플 달아주실꺼예요.. ^^

+ -

관련 글 리스트
13612 파일을 바이너리 읽기^^ heartsim 988 2001/12/12
13613     Re:파일을 바이너리 읽기^^ 타짜 1143 2001/12/12
13617         감사합니다.^^ 박경원 664 2001/12/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.