用HTTP方式从internet上的某个网站下载文件,如何得到下载的速率(比如 50k/s)?
我说的是如何用代码编写?
问题点数:0、回复次数:5Top
1 楼helodd(感动/angle)回复于 2004-09-04 09:32:02 得分 0
如果使用的是indy 控件可以在onwork 事件理控制
procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
var
S: String;
TotalTime: TDateTime;
H, M, Sec, MS: Word;
DLTime: Double;
begin
TotalTime := Now - STime;
DecodeTime(TotalTime, H, M, Sec, MS);
Sec := Sec + M * 60 + H * 3600;
DLTime := Sec + MS / 1000;
if DLTime > 0 then
AverageSpeed := {(AverageSpeed + }(AWorkCount / 1024) / DLTime{) / 2};
if AverageSpeed > 0 then begin
Sec := Trunc(((PGB.Max - AWorkCount) / 1024) / AverageSpeed);
S := Format('%2d:%2d:%2d', [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]);
S := ' Ê£Óàʱ¼ä: ' + S ;
end
else S := '';
S := FormatFloat('0.00 KB/s',AverageSpeed) + '; ' + S;
case AWorkMode of
wmRead: StatusBar1.Panels[1].Text := '¸üÐÂËÙ¶È' + S;
wmWrite: StatusBar1.Panels[1].Text := 'ÉÏ´«ËÙ¶È' + S;
end;
if AbortTransfer then IdFTP1.Abort;
PGB.Position := AWorkCount;
application.ProcessMessages;
end;Top
2 楼netwan(网络菜鸟)回复于 2004-09-04 12:08:53 得分 0
楼上正解Top
3 楼138075(yyh)回复于 2004-09-04 14:22:49 得分 0
TotalTime := Now - STime;
//这里的 STime 是什么?Top
4 楼netwan(网络菜鸟)回复于 2004-09-07 09:18:45 得分 0
stime 是starttime,开始下载时候的时间。Top
5 楼befree(似有似无)回复于 2004-09-07 09:52:32 得分 0
应该是自己计算出来实际取得的字节速度Top




