dosya Download edilirken anlık indirilme sayısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

dosya Download edilirken anlık indirilme sayısı

Mesaj gönderen ender_arslanturk »

Merhaba

Başlıkta da anlaşıldığı gibi bir dosyayı download ederken download işlemi sırasında şu kadar indirildi toplam boyut bu ve bukadar geriye kaldı gibi nasıl gösterebiliriz, birde bunu acaba mb. cinsinden gösterebilirmiyiz.

Aramalarda bazı kodlara rastladım ama başlıkta sorduğum gibi değil....

Saygılar,
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

{ Add this under your type declaration

type
  TDRec = record
H,M,S: Integer;
  end;

}
  TDRec = record
  H, M, S: Integer;
  end;
{*****}

const
  Count = 6;
  BpsArray: array [0..Count] of Integer = (14400,
    28800,
    33600,
    56000,
    64000,
    128000,
    512000
    );

function CalculateDLTime(const Value, Units, Connection: Integer): TDRec;
var
  i, size_bits, filedltimesec, hourmod, HH, MM, SS: Integer;

  Rec: TDRec;

  function pow(a, b: Integer): Integer;
    function sl(nr, times: Integer): Integer;
    var
      i: Integer;
    begin
      Result := nr * nr;
      for i := 0 to times do Result := Result + nr * nr;
    end;
  begin
    if a > b then Result := sl(a, b)
    else 
      Result := sl(b, a);
  end;
begin
  case Units of
    1: size_bits := (8 div 1) * Value;                 // bytes
    2: size_bits := (8 div 1) * ((pow(2,10)) div 1) * Value;     // kilobytes
    3: size_bits := (8 div 1) * ((pow(2,20)) div 1) * Value;     // Megabytes
  end;

  // Calculate
  filedltimesec := Round(size_bits) div BpsArray[Connection];

  hourmod := filedltimesec mod (60 * 60);  // Modulus.
  HH      := Floor(filedltimesec / (60 * 60));
  MM      := Floor(hourmod / 60);
  SS      := Floor(filedltimesec mod 60);  // Modulus.

  if SS > 0 then Inc(SS);

  with Rec do
  begin
    H := HH;
    M := MM;
    S := SS;
  end;

  Result := Rec;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  Rec: TDRec;
begin
  ListView1.Items.Clear;

  for i := 0 to Count do
  begin
    Rec := CalculateDLTime(StrToInt(Edit1.Text), ComboBox1.ItemIndex + 1,i);

    with ListView1.Items.Add do
    begin
      Caption := NameArray[i];
      SubItems.Add(IntToStr(Rec.H));
      SubItems.Add(IntToStr(Rec.M));
      SubItems.Add(IntToStr(Rec.S));
    end;
  end;
end;
Ender abi boyutu değilde süreyi tahmin eden olsa olmazmı.Boyutunu bilmem ama bende tahmini süreyi veren kod vardı.Güle güle kullan,,,kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

download için hangi nesne kullanıyorsnuz. IdHttp, NmHttp veya başkası. Hangisi...
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Vedatcım bunu button değilde timer da kullansam olurmu şu an kendi bilgisayarımda değilim de :oops:

download için daha bir karar veremedim. ama büyük bir ihtimalle procedure ile halledicem..... ama hazır kod varsa alabilirim tabii... :wink:
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Timer kullanılarak elde edilmiş bir kod yok elimde ama böyle bir kodu timer nesnesine uyarlayabilirsen güzel oolur benim zamanım yok o yüzden uğraşamadım.elimdeki gibi gönderdim sana.kolay gelsin ama araştırmaya devam edicem.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

okey bende tamamlayınca başlık sonuna ekleyeceğim. Başarılar
Cevapla