سلام دوستان
تا حالا خیلی شده که حجم فایل و فولدرهایی در ویندوزتون رو ببینید ، در هنگام نمایش حجم در تب General مشاهده می کنید که حجم رو از بایت به گیگابات (اگه بیشتر از 1024 مگابایت باشه )نمایش میده .
مثلا اگر حجم یک فولدر به بایت 5,666,577,488 باشه و به گیگابایت برابر5.27 باشه.
حالا من یه Procedure نوشتم که این کار رو انجام میده ولی در دست بودن روشم شک دارم ؛ دوستان لطفا شما هم تست بزنید ، اگه اشتباه است راهنمایی کنید
با تشکر
کد :
procedure TFrmConvert.BtnConvertInbyteClick(Sender: TObject);
function GetMegaByte(const S:String):LongInt;
var
i:Integer;
sResult:string;
begin
for i := Length(S) downto 1 do
if (S[i]='.') then
Break
else
sResult:=S[i]+sResult;
Result:=StrToInt(sResult);
end;
var
byte:Int64;
GB:Integer;
const GigaByteInbyte:Int64=1073741824;
const MegaByteInbyte:LongInt=1048576;
begin
if (Trim(TxtGetGigaByteWithMegaByte.Text)='')then Exit;
try
GB:=Trunc(StrToFloat(TxtGetGigaByteWithMegaByte.Te xt));
byte:=(GigaByteInbyte*GB);
byte:=(GetMegaByte(TxtGetGigaByteWithMegaByte.Text ) * MegaByteInbyte)+(byte);
LblShow_byte.Caption:=IntToStr(byte);
except
Application.MessageBox('خطا در هنگام تبديل به بايت ', 'خطا',MB_ICONSTOP);
end;
end;