![]() |
Indy - Kann eine Verbindung zu URL aufgebaut werden?
Hallo DP!
Ich brauche recht schnell eine Lösung: Folgendes Problem: Habe die Indy-Komponenten (welche Version? :gruebel: Auf jeden Fall in Delphi 7 :lol:) und lade über ein IdHTTP Dateien von einer URL runter. Funktioniertauch so weit, aber wenn die Dateien (wieso auch immer) mal nicht verfügbar sein sollten, zerstört mein Programm kurzerhand die Originale. Jetz will ich natürlich abfangen, ob die Daten verfügbar sind--- Arbeite gerade an einem Workaround. Fein wär sowas wie TIdHTTP.IsAvailable(URL:string):boolean, aber das gibts leider nicht. Kennt wer so was? Danke, Euer LDer. Argh, ihr kommt gleich wieder mit dem hier: :glaskugel: Zu Recht, Code vergessen: Bitteschön ;)
Delphi-Quellcode:
procedure TUpdateForm.Download(Source, Target: string);
var fs:TFileStream; const UpdateURL='http://jmmworks.bplaced.net/*zensiert*'; begin fs:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\'+Target, fmCreate or fmShareDenyNone); try IdDown.Get(UpdateURL+Source, fs); except on E:EIdHTTPProtocolException do Showmessage('HTTP-Fehler: '+IntToStr(E.ReplyErrorCode)); on E:EIdSocketError do Showmessage(E.message); end; fs.Free; end; |
Re: Indy - Kann eine Verbindung zu URL aufgebaut werden?
|
Re: Indy - Kann eine Verbindung zu URL aufgebaut werden?
Nein, kannte ich noch nicht... klingt intereessant, aber ich finde meinen Workaround gelungen (hatte nen Aufruf von TGeistesBlitz.Create(poHirn) :D):
Delphi-Quellcode:
So. Hat sich erledigt!
function TUpdateForm.Download(Source, Target: string):boolean;
var fs:TFileStream; const UpdateURL='http://jmmworks.bplaced.net/*zensiert*'; begin Result:=true; fs:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp', fmCreate or fmShareDenyNone); try IdDown.Get(UpdateURL+Source, fs); except Result:=false; end; fs.Free; if(Result)then begin DeleteFile(ExtractFileDir(Application.ExeName)+'\'+Target); RenameFile(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp', ExtractFileDir(Application.ExeName)+'\'+Target); end else DeleteFile(ExtractFileDir(Application.ExeName)+'\'+Target+'.tmp'); end; Gruß vom LDer P.S.: Bei nächster Gelegenheit komm ich auf URLCheck zurück! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz