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

怎樣規範顯示接收到的位元組數

缺席
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-10 11:53:12 IP:222.248.xxx.xxx 未訂閱
服務端不停的在接收數據,需要把接收到的字節數用一個Lable顯示出來 希望顯示得規範一點,如顯示成下面樣式: 214 字節 (214 字節) 1.35 KB (1,389 字節) 483 KB (494,598 字節) 1.59 MB (1,671,837 字節) 31.6 MB (33,232,710 字節) 482 MB (505,780,923 字節) 6.21 GB (6,672,463,691 字節)
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  //RecByteCount 為全局Int64變數
  RecByteCount := RecByteCount   Socket.ReceiveLength;
  Label1.Caption := IntToStr(RecByteCount);  //把這裏按上面所說規範顯示
end;
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-10 13:49:46 IP:218.19.xxx.xxx 未訂閱
h@visli 您好:    將 IntToStr() 改成 FloatToStrF(),並將 format 參數設為 ffNumber 試試看,例如:FloatToStrF(RecByteCount, ffNumber, 15, 0)
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-11 14:09:56 IP:222.248.xxx.xxx 未訂閱
問題我已經解決:
if RecByteCount > 1024*1024*1024 then  //G
  Label1.Caption := Format('%.2fG%d位元組',[RecByteCount/(1024*1024*1024),RecByteCount])
else if RecByteCount > 1024*1024 then  //M
  Label1.Caption := Format('%.2fM%d位元組',[RecByteCount/(1024*1024),RecByteCount])
else if RecByteCount > 1024 then       //K
  Label1.Caption := Format('%.2fK%d位元組',[RecByteCount/(1024),RecByteCount])
else 
  Label1.Caption := Format('%d位元組%d位元組',[RecByteCount,RecByteCount])
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
系統時間:2024-03-28 23:58:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!