자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

'지난번 IDftp에서 한글깨짐 방법없나요'로 질문 한 것입니다. 질의  답변은 받았으나 그걸로 해결 되지 않아 올린 것이 었습니다
이번에는 질의 내용을 자세히 말씀드리는 것이 좋을 것 같네요
(질의 전에 기술 개발 차료를 검색하여 참조 하시라고 한 자료는 이미  검토 했던 것입니다 - 그 내용은 아래에 있습니다.

 그 내용이 2012 년도 였고 그때 그 대응방법을 제시 한 분 결론도 향후 Indy에서  수정 보완 할 필요가 있는 건이고 수정 Version이

 나오면 그 방법은 불 필요하고 삭제 해야 하는 방법이라고 했습니다.
 그래서 이미 2 년이 지나 그후 여러번의 Version Up (Indy도 마찬가지로 Version Up)  이 있어서 이  Burg 가 수정되었는데  내가

  알지 못하고 다른 방법으로 해야 하는데 내가 몰라서 그런 건지 잘 몰라  질의 한 것입니다.
  관리자 분도 이건 DELPHI Burg 가 아니고개발 기술 문제라고 하고  제품 Burg Q&A / 설치 오류 Q&A 에서 변경 하셔으니 무언가

  이 건이 보완 수정되어 (2년전에도 똑 같은 질의 답변들이 있었으니 그 내용을 알고 있었을 거고 그래서 이건 관련 Burg는

  보완 수정 된 것을 알고 있어서)  그렇게 말씀 하신 거 아닌 가요 ?  그럼 좀 가르켜 주세요. (관리자분이 DElPHi  잘 모르는  사람은

   아닐테니까요)
 
. 질문 내용을 상세히 설명하고 질의  합니다

  질의건은 idFTP.List 에 관한 것이고 Source는 지난번과 동일하게 다음과 같습니다 (Full로 전부 다 COPY 합니다)


procedure TFMYFTP.dataItem_list;
var
    c, file_fsize : Integer;
    file_Tdate : TdateTime;
    str_fsize, wk_header, file_name, file_date : String;
begin

     memo1.clear;
     DataList.Items.Clear;
     idFTP1.List(DataList.Items, '', false);
     For  c :=  0 to DataList.Items.Count -1 Do begin
            file_name := DataList.Items[c]; 
            file_size  := idFTP1.size(file_name);

            if   f_size = -1 Then file_type = '폴더(DIR)'    else file_type = '일반File ';    
            if file_size = -1 Then begin                       // -1 은 Folder
                 str_fsize  := '';

            end else begin

                   s tr_fsize  := IntToStr(file_size);
                   str_fsize  := formatFloat('###,##0',strToCurr(str_fsize));
              end;          
            file_Tdate := idFTP1.filedate(DataList.Items[c]);    
            file_date  := FormatDateTime('YYYY-MM-DD hh:nn:ss',file_tdate);
            wk_header := file_type + ' ' + file_name +  '    '  + str_fsize + '  ' + file_date;
            memo1.lines.Add(wk_header);
   end;
   (※ DataList 는 TListBox 입니다)


 질의사항)
   ① idFtp.List 의 문제점 (idFTP1.List(DataList.Items, '', false);
         file_name = DataList.Items(c)  에 한글이 깨져 들어 옵니다 (DataList 의 ListBox에도    Memo1 의 file_name 에도 다 깨져 들어 옵니다

             (※  idFTP1.size(file_name).는 정상입니다)   
   ② idFtp.Filedate 의 문제점idFTP1.filedate(DataList.Items[c]);     
       file_date 도 folder에서는 전부 못가져오고, file 중에서도 어떤 File은    가져오고 어떤 file은 못가져옵니다 - 못가져온 것은

       그 이유도 알수 없고요


 ◑ ① idFtp.List 의 file_name 문제점과 관련
    ☞ 이전에 알려준 참조자료 적용시: 알려 주신 참조 자료 중 다른 것은 다 적용   해도 안되고 저자가 말하길 임시변통으로 만들었다고

       하는   참조:http://couping.blogspot.com/2011/02/2009-indy-ftp-http-or.html    의 것을 적용하면 일부 적용되고 일부 안됩니다.

.      즉         (▶ Funtion OutDataToAnsi(indata : String) String;이   한글 깨짐을 복구 하는 Function 으로 참조 하라는 것입니다 )

      즉 상기 Souce에서 file_name 에 대해
            file_name := DataList.Items[c];
             hangul_fname := OutDataToAnsi(file_name); 을 해주고
            .....
              wk_header := file_type + ' ' + file_name +   ' + hangul_fname +  '    '  + str_fsize + '  ' + file_date;
             memo1.lines.Add(wk_header);
        하면
        - File Type 난에  Main Folder (접속한 FTP의  FTP server 의 root Dir) 은 전부  한글 깨진채 이고
                                      (※ FTP root Dir 은 실제 그 Hard ware의 root Dir 일 수 있습니다. 아닌 경우도 있지만...)  

                                  그외 Directoty 에서는 전부 한글이 정상으로 되어 나옵니다
           (즉 root Dir 의 Folder 의 저장 Information 구조는 기타 Directory 의 것과 약간 다른 점은 이해 하는데 영문은 제대로 읽어 오면서

               한글은  안된다는 점음  잘 이해 안됩니다. root Dir의 구조때문이라면 영문의 글자 하나도 날라가야지 정상인데...

               file Type은  idFTP.Size 를 가지고 분류해서 내가 붙인것이고)

  ◑ file_Tdate : 어떤 것은 정상적으로 읽어 오고 어떤 것은 못 가져 옵니다. 또 가져온 것도 맞지 않는데 ....

                          (idFtp.FileDate(filename)이 해당 file의 생성일시 아닌가요 (DirInfo의 file 작성일자) 
                  이것도 root directory 것은  전부 못 가져 옵니다. 그외는 제멋대로  어떤 것은 가져오고 어떤 것은 못 가져 옵니다.
                가져온 일자도 좀 그렇고요
  ★ 참고: f_size = -1 은 폴더로 분류 했는데 이는 실제 해당 Server 의 실제자료 내용과 일치합니다
           그리고 Filedate 는 해당 FTP Server의 실자료에는 다 있습니다


 ♧자세히 내용을 설명하다 보니 이렇게 길어 졌습니다. 그래서 간단히 그렇게 질의 했는데 내용이 잘 전달 되지 못 했네요
   내 생각에는 IDFTP의 Burg 같은데 (아직 기능이 완성되지 못한 Burg) 내가 잘못 알고 있는 거 겠지요 무려 이기능이
   나오고 최소 수년이상 지났고 국내에서도 많은 사람이 사용 했을 걸로 생각 되는데
   더우기 File_date 문제는 전세계적인 문제인데....

   해결 법 제안 꼭 좀 부탁드립니다. 이를 해결 못하면 FTP 이용부분은 계속 DELPHI4.0 을 사용 할 수 있도록 program 구조
   를 변경하여 사용해야 하는데 이 또한 여러 어려운 문제가 있습니다.
   예를 들어 계약서등 file 자료 는  FTP Server 에 올려두고 이를 조회하여 가져다 첨부 자료로 사용하거나 보내는 경우
   에 적용하는등 상당히 많이 사용되는데....

 ♣Tool 에서 제공 하는 기능이 원래 그 기능 하는데 수행된 결과가 틀릴때는 ① 사용자가 Usage 대로 안했거나 ② 해당 System
   (Tool 또는 기능등)의 Burg 입니다. 이 경우는 usage 대로 한것 같은데 결과가 이상하니 개발자용 Q&A 사항이아니라 여기
   (공급자(제작사)에 Q&A )올린 것입니다.
   상기 질의사항 둘다 Burg로 아직 답이 없고 방법이 없어 정 필요하다면 참조 할 수 있도록 관계되는 다른 사람들의 경험을
   제공하여 지원해 주어 일부나마 쓸 수 있도록 하는 것인지 (그리고 Burg 수정 게획은 없는지도) 아니면 사용자가 무었을
   어떻게 잘못했는지(그래서 어떻게 하는 것이 바로 사용하는 건지)를 알고 싶기 때문 입니다  


   참고: 첨부는 INDY10 - IDFTP 관련 INDY 에서 Down 받은 DEMO 프로그램인데 마찬가지 입니다. 
              원하는 분은 Down 받아 사용 해보세요

               File name 이 깨지는데  여기서도 File Name 부분을 Source를 고쳐  Test 해 보실 수 있을 겁니다 .

                  (한글깨짐 복구 Function 은 참조 하라고 한 :http://couping.blogspot.com/2011/02/2009-indy-ftp-http-or.html 의

                    Function Source 를 그대로 복사해서 쓰시고요

           첨부1 :Indy_10_FTPClient.zip  :  Indy site 에서 Down 받은 DEMO Program Source

                   2. Indy10한글깨짐복구Function.txt :참조하라는 :http://couping.blogspot.com/2011/02/2009-indy-ftp-http-or.html    의

                       한글 깨짐 복구 Function     Source 입니다


 질의 ① , ② 좋은 해결 방안 부탁드립니다. Indy10을 안쓰면 FTP에 대해 다른 방안이 없고 ......

 

 

            

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15768
공지 유용한 관련 사이트 관리자2 2014.03.20 54582
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97995
819 xe 10.3 에서 lib path 연결 하는 방법은 무엇인지요? [2] 김태현 2018.12.26 1009
818 Xe10으로 앱개발 배포할때 델파이가 지원하는 안드로이드 , ios 버전 문제? [2] 미스터리 2018.12.26 259
817 디자인타임시 그림파일이 로딩되지 않습니다. 바다를향해 2018.12.26 96
816 델파이 RIO Webbrowser size 문의? [2] silkroad99 2018.12.27 331
815 델파이 Style과 Grid [2] file 크림슨킹 2018.12.27 316
814 mousedown 에서의 shift상태 [1] 100jk 2018.12.27 158
813 윈도우10 보안 업데이트 이후 FastReport 출력문제 박군80 2018.12.31 274
812 [이벤트 당첨자 발표] 개발자 Q&A 게시판을 가장 잘 활용해주신 개발자는?! 관리자 2019.01.03 164
811 rio 10.3 에서 프로젝트 file (.dpr) 편집하는 방법 [1] 닉네임없음 2019.01.03 159
810 안드로이드 8.0이상 즉 신형 스마트폰에서 form의 SaveState는 왜 안먹을까요? 화이부동 2019.01.06 278
809 델파이에서 정규식을 어떻게 사용하나요. [1] devdev 2019.01.07 327
808 RTTI로 집합 타입의 내용을 출력하고 싶어요. [1] 험프리 2019.01.08 318
807 RADStudio 10.3 EMS Server 프로덕션 환경 [2] 개성산전 2019.01.09 240
806 RIO 에서 TWebbrowser 문제해결 차선책 [1] 지병철 2019.01.10 249
805 TLocationSensor 의 중지가 안됩니다. silkroad99 2019.01.11 154
804 C++ Builder에서 FCM 사용 어떻게 하나요? [4] 개성산전 2019.01.11 383
803 [질문]Delphi XE7 Fastreport PDF 한글 깨짐 [1] 라다 2019.01.11 648
802 EMS Push 권한 에러 [2] 개성산전 2019.01.15 169
801 델파이 10.2.3 에서 IOS 키입력창 문제 부분 [1] delphiman 2019.01.15 108
800 안녕하세요 splash 화면에 대해서 질문드려요 [2] file vast 2019.01.17 251