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
[67032] Re:Re:idftp 한글 문제로 질문했었는데 진전이 보였으나 아직 부족하여 다시 질문올립니다.
신효철 [] 1745 읽음    2012-04-26 16:06
il's 님 감사합니다.

알려주신 방법으로 해봤는데 한글이 깨져서 나옵니다.

IdFTP1->IOHandler->DefStringEncoding = TEncoding::GetEncoding(949);
를 어찌 사용해야 한글이 해결될거 같은데 잘 안되네요.
/////////////////////////////////////////////////////////////////////

    ftpSW->Username = "xxx";
    ftpSW->Password = "xxx";
    ftpSW->Host = "xx.xx.xx.xx";
    ftpSW->Port = 21;
    ftpSW->Connect();

    if(ftpSW->Connected())
    {
        ftpSW->IOHandler->DefStringEncoding = TIdEncoding(TEncoding::Default);
        ftpSW->ChangeDir("/ftpTest/");

        ftpSW->List(" ", false);
        TIdFTPListItems *list = ftpSW->DirectoryListing;
        int iCnt;
        for ( iCnt = 0; iCnt < list->Count; iCnt++ )
        {

            Memo1->Lines->Add(list->Items[iCnt]->FileName);
        }
    }
하니 한글문제가 해결되었습니다ㅎㅎ
관심가져주시고 뎃글달아주신 il's 님 감사합니다ㅎㅎ


il's 님이 쓰신 글 :
: IdFTP1->Host = "127.0.0.1";          //Ftp 서버
:    IdFTP1->Port = 21;               //Ftp 포트
:    IdFTP1->Username = "test";     // 사용자 계정 ID
:    IdFTP1->Password = "test";       // 사용자 계정 Password
:    IdFTP1->Connect();
:
:    TStringList *FileList = new TStringList;
:    if (IdFTP1->Connected() == true)
:    {
:           FileList ->Clear();
:           IdFTP1->TransferType = ftASCII;
:           IdFTP1->ChangeDir("/ftpTest/"); 
:           IdFTP1->List(FaultFileList, "*.*", false);
:          
:           for (int Count = 0; Count < FileList ->Count; Count++)
:          {
:     Memo1->Lines->Add( FileList ->Strings[Count]);
:          }
:     }
:
:     Put 작업할때는    IdFTP1->TransferType = ftBinary;
:
:
: 신효철 님이 쓰신 글 :
: : 안녕하세요.
: : 초보개발자 인사올립니다.
: :
: : 얼마전 idftp client를 이용하여 한글 파일을 다운받고자 하였으나
: : 잘 안되어 질문했었습니다.
: : 그때 도움을 받아 진전이 있었으나 아직 문제가 있어
: : 해결하다가 질문하게 되었습니다.
: :
: : 
: : 	IdFTP1->Host = "127.0.0.1";          //Ftp 서버
: : 	IdFTP1->Port = 21;               //Ftp 포트
: : 	IdFTP1->Username = "test";     // 사용자 계정 ID
: : 	IdFTP1->Password = "test";       // 사용자 계정 Password
: : 	IdFTP1->TransferType = ftBinary;     // 전송 방식
: : 	IdFTP1->Connect();
: : 
: : 	IdFTP1->IOHandler->DefStringEncoding = TEncoding::GetEncoding(949);
: : 
: : 	try{
: : 		//TStringList * sList = new TStringList;
: : 		IdFTP1->ChangeDir("/ftpTest/");         //디렉토리 이동
: : 
: : 		IdFTP1->List("*", false);         //리스트,출력하고자하는 조건,true:속성포함 False파일명
: : 
: : 		for(int i=0; i< IdFTP1->ListResult->Count; i++){
: : 			Memo1->Lines->Add(IdFTP1->ListResult->Strings[i]);
: : 		}
: : 	}__finally{
: : 		IdFTP1->Disconnect();
: : 	}
: : 

: : 이렇게 작성하여 테스트 하고자 하였으나 형변환이 안된다는 에러가 떨어졌습니다.
: : [BCC32 Error] Unit2.cpp(33): E2034 Cannot convert 'TEncoding *' to 'TIdEncoding'
: : DefStringEncoding 이 TidEncoding 이라 형변환이 안된다고 나오는데요.
: : 그래서 강제 형변환을 하면
: :
: : 	IdFTP1->IOHandler->DefStringEncoding = TIdEncoding(TEncoding::GetEncoding(949));
: : 

: : 한글은 표시 되지만 오류를 뱉어냅니다.
: : First chance exception at $76F1B9BC. Exception class EAccessViolation with message 'Access violation at address 5002CBC6 in module 'rtl120.bpl'. Read of address 00000000'. Process Project2.exe (8620)
: :
: : 형변환을 강제로 해서 오류가 나는데.. 이걸 잡을 길이 안보여 도움을 구하고자 질문하게 되었습니다.
: :
: : TIdEncoding은 IdGlobal.hpp파일의
: : enum TIdEncoding { enDefault, en7Bit, enUTF8, en8Bit }; 이라고 되어있고요.
: :
: : TEncoding은 SysUtils.hpp 파일의
: : static TEncoding* __fastcall GetEncoding(int CodePage); 라고 선언되어 있습니다.
: :
: : 이걸 보고 뭘 어찌 해야할지 막혀서 선배님들의 도움을 구합니다.

+ -

관련 글 리스트
66934 idftp 한글 문제로 질문했었는데 진전이 보였으나 아직 부족하여 다시 질문올립니다. 신효철 1892 2012/04/17
67014     Re:idftp 한글 문제로 질문했었는데 진전이 보였으나 아직 부족하여 다시 질문올립니다. il's 1507 2012/04/25
67032         Re:Re:idftp 한글 문제로 질문했었는데 진전이 보였으나 아직 부족하여 다시 질문올립니다. 신효철 1745 2012/04/26
67033             Re:Re:Re:idftp 한글 문제로 질문했었는데 진전이 보였으나 아직 부족하여 다시 질문올립니다. il's 2126 2012/04/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.