全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1330
推到 Plurk!
推到 Facebook!

IdFTP 的函數遞迴問題

尚未結案
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-17 22:02:16 IP:61.56.xxx.xxx 未訂閱
為什麼每當函數遞迴完在返回時就無法再繼續作遞迴動作 我要如何做才能達到類似 (TSearchRec)(FindNext) 的方法     
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  FtpFileFind("/home/renth/12345");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FtpFileFind(AnsiString DIR)
{
  AnsiString DR=DIR;
  if(DR.SubString(DR.Length(),1) != "/")DR=DR "/";      IdFTP1->ChangeDir(DR);
  IdFTP1->TransferType=ftBinary;                                              
  TStringList *SSL = new TStringList();
  IdFTP1->List(SSL,"",true);                                                        //if(IdFTP1->ListResult->Count >= 1)
  //{         for(int i=0;i < IdFTP1->ListResult->Count;i  )
     {
        AnsiString X = IdFTP1->ListResult->Strings[i];                            
        if(X.SubString(1,1) == 'd')                                               
        {
           SSDL = ListView1->Items->Add();
           SSDL->Caption=X;
           SSDL->SubItems->Add(IdFTP1->RetrieveCurrentDir()  "/"  GetNameLine(X)); 
           FtpFileFind(DR   GetNameLine(X));
        }
        else if(X.SubString(1,1) == '-')
        {
           SSDL = ListView1->Items->Add();
           SSDL->Caption=X;
           SSDL->SubItems->Add(IdFTP1->RetrieveCurrentDir()  "/"  GetNameLine(X)); 
        }
     }      //}
  //delete SSL;    }
//---------------------------------------------------------------------------
AnsiString __fastcall TForm1::GetNameLine(AnsiString LX)
{
//===========================================================================
//  這個函數是計算一筆檔案清單
//  取得這筆檔案的(資料夾名稱)或(檔案名稱)
//===========================================================================
  for(int M=0;M <= 7;M  )
  {
     LX.Delete(1,LX.Pos(' '));
     while(LX[1] == ' ')
     {
        LX.Delete(1,1);
     }
  }
  return LX;
}
//---------------------------------------------------------------------------
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-18 16:18:02 IP:61.56.xxx.xxx 未訂閱
沒有人會這種 FTP 函數遞迴檔案方法嗎 各位前輩幫幫我看那裡錯了 感激不盡  
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-18 17:52:08 IP:61.224.xxx.xxx 未訂閱
應該不是沒人要幫你... 我想可能是版本的問題,因為小弟之前想 > 國泰平安
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-18 23:04:32 IP:61.56.xxx.xxx 未訂閱
終於有人回應了 gemi0305 前輩 我是安裝這個版本 Indy V9.00.14
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-18 23:07:44 IP:61.56.xxx.xxx 未訂閱
忘了說明一點 當要執行測試時請在 exe 下執行 不能在 IDE 環境下執行 我也不知道為什麼會這樣
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-19 00:58:47 IP:61.224.xxx.xxx 未訂閱
這篇是最近從borland的討論區看到的, 他是有提到說,可以用List()和Get()來做遞迴~ 但因為我也沒實際去試過,我是以一個外行人的角度來看~ 不知對你有沒有什麼幫助~ 還是發這篇文章的就是你本人...呵 "> > > > ( > > > > > 反而找了一堆無關的問題出來呵< > 不要見怪~ 國泰平安
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-19 17:20:07 IP:61.56.xxx.xxx 未訂閱
感謝 gemi0305 對小弟的幫忙 那篇英文不是我寫的因為我沒那麼利害 ^^ 我是使用 Indy V9.00.14版的沒錯但我安裝後直接使用就以有 ListResult 的類別 它應該是記錄 List 的檔案清單 我也不知詳細用法 說實在我去找書找網站 indy 實在資訊蠻少的國外也一樣 真希望國內有人趕快出些關於 indy 的書籍 因為我覺得 indy 元件很多也都蠻實用的 關於製作像CuteFTP這樣軟體我是還沒那能力 我只是希望要作到類似像檔案搜尋那樣功能 這兩天我已找到一方法可行 我整理一下在 post 到版上讓前輩們幫我看是否程式可最佳化 再謝謝 gemi0305 前輩幫忙
系統時間:2024-05-19 13:40:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!