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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 08.12.2018, 14:09   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
Вопрос 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;
...

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утечка памяти Алексей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