Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 08.12.2018, 14:09   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
Репутация: 62
Вопрос GetInetFileSize = Утечка памяти

Всем привет,

Вроде все просто, но решил заюзать в Embarcadero® Delphi 10.3 CE Version 26.0.32429.4364 отчет по утечкам памяти

Код:
initialization
  ReportMemoryLeaksOnShutdown := True;
и был немного озадачен, с чего ради такой выхлоп то?

...

Код:
procedure TForm1.btGetClick(Sender: TObject);
begin
  lbSize.Caption := IntToStr(GetInetFileSize(edUrl.Text));
end;

function TForm1.GetInetFileSize(const FileUrl: string): Int64;
var
  HTTP: TIdHTTP;
begin
  Result := 0; // Ставим первоначальное значение 0
  HTTP := TIdHTTP.Create(nil); // Создали
  try
    HTTP.Head(FileUrl);
    // Получили заголовок файла, где хранится его размер
    if HTTP.ResponseCode = 200 then // Если файл существует, то...
      // (200 это успешный код: HTTP OK)
      Result := HTTP.Response.ContentLength;
    // В результат пихаем наш размер файла в байтах.
    Application.ProcessMessages; // Антифриз
  except
    FreeAndNil(HTTP); // Освободили
  end;
end;

initialization

// Отчет по утечке памяти при завершении работы.
ReportMemoryLeaksOnShutdown := True;
...

Лезет неплохая портянка...
Изображения
 
Вложения
Тип файла: zip GetInetFileSize.zip (53.5 Кб, 8 просмотров)
XerSon вне форума   Ответить с цитированием
Старый 08.12.2018, 15:12   #2
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Адрес: DS:SI
Сообщений: 117
Репутация: 256
По умолчанию

Цитата:
Сообщение от XerSon Посмотреть сообщение
Код:
...
   except 
      FreeAndNil(HTTP); // Освободили
   end; 
end;
Уверены что хттп свободен в случае удачи?
jillitil вне форума   Ответить с цитированием
Старый 08.12.2018, 15:20   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
Репутация: 62
Хорошо

Цитата:
Сообщение от jillitil Посмотреть сообщение
Уверены что хттп свободен в случае удачи?
RTFM

Код:
  finally
    FreeAndNil(HTTP); // Освободили
  end;
Все ок, спс за очевидное)
XerSon вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утечка памяти Алексей0001 Общие вопросы Delphi 8 03.02.2018 00:17
Утечка памяти [Освобождение памяти массива] denis76560 Общие вопросы Delphi 4 27.11.2016 19:20
утечка памяти polin11 Общие вопросы C/C++ 10 18.08.2015 19:12
Утечка памяти forivanb Общие вопросы Delphi 4 11.04.2012 15:28
Утечка памяти ZvEr_HaCkEr Свободное общение 13 24.09.2010 19:30


09:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru