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

indy TidHTTP Get 與續傳

缺席
gleo
一般會員


發表:3
回覆:9
積分:7
註冊:2004-01-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-12 12:14:16 IP:61.62.xxx.xxx 未訂閱
請問我要如何使用TIDHTTP來實現續傳,以下為China Join 大發表的範例片斷: void __fastcall TMyThread::trycatch(){ if(count==0) Form1->IdHTTP1->Request->ContentRangeStart=0; else{ Form1->IdHTTP1->Request->ContentRangeStart=count; ms->Position=count; } try{ Form1->IdHTTP1->Get("http://XXX.XXX.XXX.XXX/a.txt",ms); } catch(...){ if(MessageBox(NULL,"下載資料中斷,要續傳嗎?","斷線",MB_YESNO)==IDYES) trycatch(); } } //------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { IdHTTP1->Disconnect(); } //------------------------------------------------------------- 但其中有2點疑問 1. 在Get裡,似乎每一次下載都從檔案的頭開始. 2. debug時使用Button2或拔掉網路線時會出現錯誤訊息: Project Connect.exe raised exeption class EIdNotConnected with message'Not Connected'.Process stopped.Use Step or Run to continue.
gleo
一般會員


發表:3
回覆:9
積分:7
註冊:2004-01-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-12 17:25:28 IP:61.62.xxx.xxx 未訂閱
引用原程式碼: void __fastcall TForm1::IdHTTP1Work(TObject *Sender, TWorkMode AWorkMode, const int AWorkCount) { count=AWorkCount;//<--它會一直從0開始算,但是我中斷後的Count值卻不一定為0 ProgressBar1->Position=AWorkCount; StatusBar1->Panels->Items[0]->Text="資料擷取中..."; // StatusBar1->Panels->Items[1]->Text=IntToStr(AWorkCount) " Byte" " 完成度:" IntToStr(((int)(((float)AWorkCount/ProgressBar1->Max)*100))) " %"; //Panel1->Refresh(); } 做了一些實驗後,發現其中AWorkCount總是會從0開始計算,所以會影響到count的值,但又不能累加.. 請問哪位大大能告訴我如何取得目前下載檔案的點的值??
系統時間:2024-05-03 16:39:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!