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