Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 434

Раздел: Delphi » Прочее
/ вопрос открыт /

Всем Привет!
Не могу разобраться почему не качает.
Помогите

Приложение:
  1. s := ExtractUrlFileName(Memo1.Lines.Strings[0]);
  2. Edit1.Text:= (Memo1.Lines.Strings[0]);
  3. lStream := TFileStream.Create(DirName+''+s, fmCreate);
  4. Application.ProcessMessages;
  5. try
  6. IDHTTP1.Connect();
  7. idHTTP1.Get(Edit1.Text, lStream);
  8. IdHTTP1.Disconnect;
  9. except
  10. on EIdHostRequired do begin
  11. lStream.Free;
  12.  


Vit2 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Vit2 (статус: Посетитель)
Вопрос отправлен: 25 марта 2007, 21:55
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: min@y™

C компонентами Indy я не работал, поэтому здесь помочь не могу. Однако, я, давно ещё, ради развлечения и убийства времени написал простенькую программку по закачиванию свежих креативов с udaff.com :). Вот ссылки:
EXE-файл: http://sourceviewer.narod.ru/downloads/udaff32.7z
Исходиники на Delphi:
http://sourceviewer.narod.ru/downloads/udaff32_src.7z

Посмотри, может поможет.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 26 марта 2007, 09:29

Ответ #2. Отвечает эксперт: Вадим К

Если вы с https начали качать, то может и не качать. Там ещё один компонент бросать надо.
А так, код вроде жизнеспособный, поэтому, приведите урл, откудова качаете, может он мёртвый или требует кукисов или сесии. во вторых, проверте, а файл действетельно может создастся. Каталог dir должен существовать.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 26 марта 2007, 11:23
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 28; последнее сообщение — 27 марта 2007, 14:44; участников в обсуждении: 2.

Страницы: [1] [2] [Следующая »]

Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 11:59 [#1]:

Всем Привет!
Этот код работает с Delphi 6
try
with idHTTP1 do begin
Application.ProcessMessages;
Get(Edit1.Text, lStream);
end;
IdHTTP1.Disconnect;
Memo1.Lines.Delete(0);
if Memo1.Lines.Count<>0 then
begin
StartButton.Click;
end;
except
on EIdConnClosedGracefully do
lStream.Free;
on E: EIdProtocolReplyError do begin
lStream.Free;
MessageDlg(WideFormat(sError, [E.Message]), mtError, [mbOK], 0);
end;
A Delphi7, BDS2006 не хочет
Выскакивает вот такое сообщение
The requested IPversion Address family is not supported
Делаю
try
IDHTTP1.Connect;
except
Сообщение не выскакивает но и не качает
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 12:06 [#2]:

дело в том, что в 6 и 7 и 2005 делфи различные версии инди. Код не всегда "легко портируется"
Ну хотя бы адрес приведите, откудова качаете.
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 13:54 [#3]:

Обыкновенный адрес
http://www.pistonsoft.com/converter.zip
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 14:31 [#4]:

Только что на 2006 делфи обкатал ваш код.
Строка
StartButton.Click;
Вызвала приступ смеха, так как так непишут. Наиболее коректно - StartButtonOnClick(Sender);
Сам алгоритм рекурсивный тоже порадовал.

Но самое удивительное, что код качает. Файл слит нормально. Вариантов два. Либо в настройках компонента что то перестарались, либо у вас стоит программа (фаервол оутпост к примеру) который делает днс сервер. адрес в кеше левый - портит всю малину
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 15:03 [#5]:

Дайте мне ваш код рабочий,я попробую.
У меня Windows XP SP2 и Касперский 6
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 15:05 [#6]:

А того нет?
The requested IPversion Address family is not supported
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 15:18 [#7]:

нет. Чудно качает. Перечудили что то в настройках компонента. Создайте новый проект и не настраивайте компонент, добавте ваш код.

З.Ы. Каспер - это ещё та гадость. Чудит такое, что половина нормальных программеров жахается (другая половина пользуется:))
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 15:25 [#8]:

Я в настройках компонента ни чего не трогал
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 15:31 [#9]:

выключаем каспера, потом встроенный брендмауэр. Если сидим через прокси - курим настройки прокси.
Если это не помогает - идём к патологоанатому :)
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 18:42 [#10]:

Прокси нет
5 минут назад качал сейчас вот
The requested IPversion Address family is not supported

procedure TForm1.Button1Click(Sender: TObject);
var
lStream: TFileStream;
begin
lStream := TFileStream.Create('C:\'+Edit2.Text, fmCreate);
try
with idHTTP1 do begin
Application.ProcessMessages;
Get(Edit1.Text, lStream);
end;
finally

end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
try
IDHTTP1.Disconnect;
finally

end;
end;

procedure TForm1.IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
Label2.Caption := AStatusText;
end;

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer);
begin
if AWorkMode = wmRead then
Application.ProcessMessages;
ProgressBar1.Position := AWorkCount;
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Integer);
begin
if AWorkMode = wmRead then
Application.ProcessMessages;
ProgressBar1.Max := AWorkCountMax;
end;

procedure TForm1.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position:= 0;
end;

end.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 18:44 [#11]:

Одним словом "Дурь"
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 18:46 [#12]:

Брендмауэр и Каспера отключал
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 18:53 [#13]:

Скорее всего, это проблема dns сервера. И в коде проблем вроде нет.
Попробуйте к серверам обращаться по айпишнику, к примеру
Name: www.pistonsoft.com
Address: 209.216.201.12
Если ошибки будут повторятся, тогда надо будет думать.

З.Ы. У вас не виста и/или IPv6?
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 26 марта 2007, 18:54 [#14]:

Каким компонентом можно ещё качать из палитры
BDS2006 ?
Вадим К

Вадим К (статус: Академик), 26 марта 2007, 19:02 [#15]:

Вы забыли наверное дописать "по HTTP"?
Со стандартными наверное никак. А вот если на тори зайти (www.torry.net) то можно наверное что то и подыскать
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 27 марта 2007, 13:22 [#16]:

Привет!
Я нашол компонент,похож на Indy.
Только не пойму как заставить ProgerssBar работать
Read:Integer;
Total:Integer;
Вадим К

Вадим К (статус: Академик), 27 марта 2007, 13:27 [#17]:

Я тоже не сильно помогу - написали бы хотя бы название.
Галочка "подтверждения прочтения" - вселенское зло.
Vit2

Vit2 (статус: Посетитель), 27 марта 2007, 13:35 [#18]:

procedure TRapForm.StartButtonClick(Sender: TObject);
var
RH: TALHTTPResponseHeader;
lStream: TFileStream;
dirName : String;
begin
try
RH:= TALHTTPResponseHeader.Create;
try
lStream := TFileStream.Create(DirName+'\'+s, fmCreate);
try
application.ProcessMessages;
HTTP1.Get(Edit4.Text,lStream,RH);
Finally
HTTP1.Disconnect;
RH.Free;
lStream.Free;
end
except
end;
finally
end;
end;
end;
procedure TRapForm.HTTP1DownloadProgress(sender: TObject; Read,
Total: Integer);
begin
application.ProcessMessages;
Label14.Caption:= BytesToStr (Total);
Label2.Caption:= BytesToStr (Read);
end;

Компонент называется ALWininetHttpClient
Vit2

Vit2 (статус: Посетитель), 27 марта 2007, 13:37 [#19]:

Качает нормально,Total,Read показывает.
А вот как прогресс отобразить?
Вадим К

Вадим К (статус: Академик), 27 марта 2007, 13:42 [#20]:

Это
Label14.Caption:= BytesToStr (Total);
Label2.Caption:= BytesToStr (Read);
Заменить на это
ProgressBar1.Max := Total;
ProgressBar1.Position := Read;
Правда тут есть одна заковырка, большие значение в прогресс бар можно и не затолкать. Но не помню точно, эксперементировать надо.
Галочка "подтверждения прочтения" - вселенское зло.

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.02 сек.