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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2017, 18:17   #11
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
А сколько у вас файл для передачи весит?
При нажатии на ту кнопку, где я сделал отдельную отправку, программа крешится
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 18:22   #12
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Закомментировал строчку
Код:
//HTTP.Sock.OnStatus := HttpOnstatus;
Крешится перестала. Что за дела(
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 18:26   #13
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Что бы не заморачиваться с кодом если самый большой файл не превышает 200мг то зайдите в Delphi в меню Tools -> EditorOption в закладке General в UndoLimit поставьте значение примерно 200767 это ресурс памяти в Delphi.
И запустите свой старый проект, проблемы с памятью должны исчезнуть
Aliens_wolfs вне форума Ответить с цитированием
Старый 20.11.2017, 18:27   #14
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Что бы не заморачиваться с кодом если самый большой файл не превышает 200мг то зайдите в Delphi в меню Tools -> EditorOption в закладке General в UndoLimit поставьте значение примерно 200767 это ресурс памяти в Delphi.
И запустите свой старый проект, проблемы с памятью должны исчезнуть
Надо бы, чтобы и гигабайт мог отправиться :-(
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 18:52   #15
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Увеличьте этот лимит до 2гб могут быть тормоза, т.к файл подкачки работать будет

Последний раз редактировалось Aliens_wolfs; 20.11.2017 в 19:00.
Aliens_wolfs вне форума Ответить с цитированием
Старый 20.11.2017, 18:55   #16
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Увеличьте этот лими до 2гб
т.е это будет 2000000 в Undo Limit?
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 19:03   #17
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Увеличьте этот лимит до 2гб могут быть тормоза, т.к файл подкачки работать будет
Кстати, если отправляю таким образом
Код:
procedure ThreadSEND.Execute;
const
  CRLF = #13#10;
var
  HTTP: TidHTTP;
  Bound, Field: String;
  List: TStringStream;
  Log: TextFile;
  DataStr: tIdMultiPartFormDataStream;
begin
  List := TStringStream.Create;
  HTTP := TidHTTP.Create;
  DataStr := TidMultiPartFormDataStream.Create;
  HTTP.Request.Host := host;
  HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36';
  Bound := '-----' + IntToHex(Random(65535), 8) + '_boundary';
 HTTP.Request.ContentType := 'multipart/form-data; boundary=' + Bound;
  try
    try
      AssignFile(Log,'log'+name+'.txt');
      Rewrite(Log);
      DataStr.AddFile('video_file',fn,'video/mp4');
      HTTP.Post(url,DataStr,list);
      Writeln(Log,list.DataString);
      CloseFile(Log);
      if Pos('size',list.DataString)<>0 then
         Synchronize(Sync)
      else
        Synchronize(Async);
    except
      Synchronize(MemoryEXP);
      DataStr.Free;
      HTTP.Free;
      List.Free;
    end;
  finally
    Synchronize(Finality);
    Datastr.Free;
    HTTP.Free;
    List.Free;
  end;
end;
То отправляет и по 500 мб спокойно, но зато маленькие иногда не отправляет, как будто не хватает памяти, хотя видео весит по 10-15 мб. Получается так маленькие почти не грузит, а большие спокойно.
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 19:04   #18
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Причём ошибка идет из
except
Synchronize(MemoryEXP);
А не из
if Pos('size',list.DataString)<>0 then
Synchronize(Sync)
else
Synchronize(Async);
LikanGT вне форума Ответить с цитированием
Старый 20.11.2017, 20:55   #19
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Цитата:
Причём ошибка идет из
except
Synchronize(MemoryEXP);
А не из
if Pos('size',list.DataString)<>0 then
Synchronize(Sync)
else
Synchronize(Async);
Ошибку ищите в функциях что у вас Synchronize

Почитай про TidHTTP интересное чтиво http://www.webdelphi.ru/2011/07/bibl...-httpsend-pas/
там в середине есть интересный пример, для отправки файлов

Из этого чтиво найди функцию по отправки procedure TForm8.btnSendClick(Sender: TObject);
Да и вообще много интересного в этом чтиве

Последний раз редактировалось Aliens_wolfs; 20.11.2017 в 22:25.
Aliens_wolfs вне форума Ответить с цитированием
Старый 20.11.2017, 23:03   #20
LikanGT
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Ошибку ищите в функциях что у вас Synchronize

Почитай про TidHTTP интересное чтиво http://www.webdelphi.ru/2011/07/bibl...-httpsend-pas/
там в середине есть интересный пример, для отправки файлов

Из этого чтиво найди функцию по отправки procedure TForm8.btnSendClick(Sender: TObject);
Да и вообще много интересного в этом чтиве
Спасибо большое. А можете подсказать, возможно ли как-то отловить текст ошибки, произошедшей в потоке? А то отладить не получается без этого.
LikanGT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi срочно помощь dasf51 Фриланс 8 07.09.2017 12:53
Срочно! Помощь с циклами в Delphi Raikerock Помощь студентам 3 14.09.2014 09:27
Нужна помощь с пакетной передачей anghela Помощь студентам 18 01.12.2013 13:08
ПРоблема с передачей и сохранением файлов с помощью indi компонентов albatros Работа с сетью в Delphi 4 18.02.2009 22:39
Нужна помощь с передачей даных в процедуру programer_tang Общие вопросы Delphi 5 28.08.2008 10:14