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

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

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 14.02.2014, 17:02   #1
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
Репутация: 10
По умолчанию Ошибка при загрузке файла (через IdHTTP )

Код:

var
Stream:TMemoryStream;
begin
try
Form7.IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
version:=Form7.IdHTTP1.Get('ССылка/v.txt');
Form7.idhttp1.Get('ССылка/run.exe',Stream);
Stream.SaveToFile(ExtractFilePath(Application.ExeName)+('run-v.'+version+'.exe'));
except
on e:Exception do
Stream.Free;
end;
showmessage('Успешно загружено и сохранено: '+ExtractFilePath(Application.ExeName)+'Vk-Soft-v.'+version+'.exe');
end;

В чем тут ошибка? Вроде все загружает нормально, но почему то по окончанию загрузки файл весит 0 кб.

Последний раз редактировалось mogo; 14.02.2014 в 17:15.
mogo вне форума   Ответить с цитированием
Старый 14.02.2014, 17:25   #2
Vad33
Профессионал
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Адрес: Владивосток
Сообщений: 1,192
Репутация: 137
По умолчанию

Цитата:
Сообщение от mogo Посмотреть сообщение
Код:

var
Stream:TMemoryStream;
begin
try
Form7.IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
version:=Form7.IdHTTP1.Get('ССылка/v.txt');
Form7.idhttp1.Get('ССылка/run.exe',Stream);
Stream.SaveToFile(ExtractFilePath(Application.ExeName)+('run-v.'+version+'.exe'));
except
on e:Exception do
Stream.Free;
end;
showmessage('Успешно загружено и сохранено: '+ExtractFilePath(Application.ExeName)+'Vk-Soft-v.'+version+'.exe');
end;

В чем тут ошибка? Вроде все загружает нормально, но почему то по окончанию загрузки файл весит 0 кб.
Оно точно отрабатывает нормально?
Судя по коду, при ошибке она просто перехватывается и даже ничего
не сообщается. А потом выводится сообщение об успехе.
Под отладкой запускать пробовали?
__________________
** Удача терпелива. **
Vad3333@inbox.ru

Последний раз редактировалось Vad33; 14.02.2014 в 17:28.
Vad33 вне форума   Ответить с цитированием
Старый 14.02.2014, 17:47   #3
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vad33 Посмотреть сообщение
Оно точно отрабатывает нормально?
Судя по коду, при ошибке она просто перехватывается и даже ничего
не сообщается. А потом выводится сообщение об успехе.
Под отладкой запускать пробовали?
Тоесть данный пример загрузки не оч? Можно пример как лучше реализовать загрузку файла?
mogo вне форума   Ответить с цитированием
Старый 14.02.2014, 18:13   #4
Vad33
Профессионал
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Адрес: Владивосток
Сообщений: 1,192
Репутация: 137
По умолчанию

Цитата:
Сообщение от mogo Посмотреть сообщение
Тоесть данный пример загрузки не оч? Можно пример как лучше реализовать загрузку файла?
Данный пример обработки ошибок не оч.
Про загрузку сложно сказать по 3 строчкам кода выдранным из середины.
Еще раз совет: запустите по отладкой и посмотрите на каждом шаге,
что происходит.
__________________
** Удача терпелива. **
Vad3333@inbox.ru
Vad33 вне форума   Ответить с цитированием
Старый 14.02.2014, 19:08   #5
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
Репутация: 10
По умолчанию

еще во время загрузки иногда вылазиют ошибки, например не верный дескриптор и еще какаето
mogo вне форума   Ответить с цитированием
Старый 14.02.2014, 19:37   #6
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,968
Репутация: 6787
По умолчанию

Цитата:
но почему то по окончанию загрузки файл весит 0 кб.
Не удивительно. Ты позицию в стриме в начало не переводишь после загрузки.

Рекомендую так:
Код:

var
Stream:TMemoryStream; 
begin
 Stream:=TMemoryStream.create;
try
 Form7.IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
 version:=Form7.IdHTTP1.Get('ССылка/v.txt');
 Form7.idhttp1.Get('ССылка/run.exe',Stream);
 Stream.Position:=0;
 Stream.SaveToFile(ExtractFilePath(Application.ExeName)+('run-v.'+version+'.exe'));
 showmessage('Успешно загружено и сохранено: '+ExtractFilePath(Application.ExeName)+'Vk-Soft-v.'+version+'.exe');
except
 on e:Exception do showmessage('Фигвам');
end;
Stream.Free;

end;

__________________
I'm learning to live...

Последний раз редактировалось Stilet; 14.02.2014 в 19:42.
Stilet вне форума   Ответить с цитированием
Старый 14.02.2014, 21:54   #7
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
Репутация: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не удивительно. Ты позицию в стриме в начало не переводишь после загрузки.

Рекомендую так:
Код:

var
Stream:TMemoryStream; 
begin
 Stream:=TMemoryStream.create;
try
 Form7.IdHTTP1.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
 version:=Form7.IdHTTP1.Get('ССылка/v.txt');
 Form7.idhttp1.Get('ССылка/run.exe',Stream);
 Stream.Position:=0;
 Stream.SaveToFile(ExtractFilePath(Application.ExeName)+('run-v.'+version+'.exe'));
 showmessage('Успешно загружено и сохранено: '+ExtractFilePath(Application.ExeName)+'Vk-Soft-v.'+version+'.exe');
except
 on e:Exception do showmessage('Фигвам');
end;
Stream.Free;

end;

Спасибо, выручили! А еще, можно как то в этом же примере определить скорость загрузки файла?
mogo вне форума   Ответить с цитированием
Старый 14.02.2014, 22:04   #8
Utkin
Профессионал
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Адрес: DuckBurg
Сообщений: 18,597
Репутация: 3930
По умолчанию

Цитата:
А еще, можно как то в этом же примере определить скорость загрузки файла?
Засечь время и посчитать количество битов переданных за него.
__________________
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума   Ответить с цитированием
Старый 14.02.2014, 22:20   #9
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,968
Репутация: 6787
По умолчанию

Цитата:
определить скорость загрузки файла?
Не помню чтоб Get такое позволяла.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 14.02.2014, 22:57   #10
ZuBy
Профессионал
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Адрес: Казахстан, Астана
Сообщений: 1,232
Репутация: 379
По умолчанию

а разве события в компоненте не для этого созданы?
__________________
бложик FMX Developer'a
ZuBy вне форума   Ответить с цитированием
Ответ



Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при загрузке массива из файла Damik Общие вопросы Delphi 1 14.02.2013 10:46
Ошибка при загрузке XML файла Alter Общие вопросы Delphi 4 25.09.2011 13:58
Ошибка при загрузке файла через броузер _PROGRAMM_ PHP 6 24.01.2011 09:52
Ошибка компонента TADOQuery при загрузке запроса из файла в Delphi 2006 WhiteKoS Помощь студентам 2 16.02.2008 16:07
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 14:55




21:50.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru