Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2019, 23:31   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию помогите округлить мегабайты

или, что там я начудил, .. должно работать? .. в результате длинные/большие числа



Код:
uses
   .... IPHelper, IpHlpApi;

  private
    { Private declarations }
    MibArr : IpHlpAPI.TMIBIfArray;
  public
    { Public declarations }
  end;

var
  LeftTopButtonForm: TLeftTopButtonForm;
  zero,i : DWORD;
  EndResutl: Integer;
  InDowm, InOut, Resul: string;



procedure TLeftTopButtonForm.FormCreate(Sender: TObject);
begin
  EndResutl := 1;
  Get_IfTableMIB(MibArr);
  zero:=MibArr[1].dwInOctets;
  i:=MibArr[0].dwOutOctets;
end;

procedure TLeftTopButtonForm.Timer3Timer(Sender: TObject);
begin
  Get_IfTableMIB(MibArr);
  InDowm:= IntToStr(MibArr[0].dwInOctets div 1024);
  InOut:= IntToStr(MibArr[0].dwOutOctets div 1024);
  Label2.Caption:=InDowm;
  Label3.Caption:=InOut;
  Resul:= InDowm + InOut;
  EndResutl := StrToInt(InDowm) + StrToInt(InOut);
  Label4.Caption:= 'Весь трафик: ' + IntToStr(EndResutl);
end;
end.
модули: IPHLPAPI.pas|IPHelper.pas

https://github.com/sebadima/connaliv...r/IPHLPAPI.pas
https://github.com/sebadima/pinger/b...r/IPHelper.pas

Последний раз редактировалось beegl; 14.01.2019 в 23:38.
beegl вне форума Ответить с цитированием
Старый 15.01.2019, 00:27   #2
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Я не знаком с данным модулем, но осмелюсь предположить, что dwInOctets и dwOutOctets указаны в байтах, а не килобайтах. По этому, вероятно, нужно сделать
Код:
MibArr[0].dwInOctets div (1024*1024);
MibArr[0].dwOutOctets div (1024*1024);
JoLan вне форума Ответить с цитированием
Старый 15.01.2019, 12:45   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

111.jpg
Код:
function GetFileSizeStr(const sz: Int64): string;
begin
  if sz < 1024
    then Result:= IntToStr(sz) + ' байт'
    else if sz < 1048576
           then Result:= FloatToStrF(sz / 1024, ffFixed, 15, 2) + ' Кб'
           else Result:= FloatToStrF(sz / 1048576, ffFixed, 15, 2) + ' Мб';
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 03.02.2019, 09:18   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

http://newerow1989.narod.ru/publ/avt...bajty/1-1-0-36
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Округлить число в Си dem66 Общие вопросы C/C++ 15 14.02.2013 13:32
Безбожно съедаются мегабайты с системного локального диска Pavel Radchenko Компьютерное железо 13 05.09.2011 21:41
Куда убегают мегабайты ?? HellMercenariess Свободное общение 10 30.01.2010 16:27
округлить до olimpus Microsoft Office Excel 6 25.08.2009 13:45
Как перевести биты в мегабайты? Юзер7 Свободное общение 7 19.06.2009 17:27