AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Herausfinden ob eine Datei fertig heruntergeladen ist
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob eine Datei fertig heruntergeladen ist

Ein Thema von Lamy · begonnen am 16. Apr 2004 · letzter Beitrag vom 16. Apr 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:26
Solltest du UrlDownloadToFileUrlDownloadToFile nicht in einem Thread aufrufen, kehrt es erst wieder zurück, wenn es die Datei fertig runtergeladne hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#12

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:35
@Lamy:
du nimmst einfach URLDownloadToFile und wärdens des Downloads wird die Prozedur, wo der Befehl drin ist angehalten, was denkst du denn, warum wird hier oftmals URLDownloadToFile in Threads auslagen? (Weil es halt das Prog anhält - du darfst den Download halt nur nicht ein einem Thread auslagern)

@Remote1:
Weil z.B. die Datei defekt sein könnte, oder man sich eine neue Version einer Datei besorgt...


[ADD]
Och menno, Luckie hat sich vorgedrängelt -.-

[ADD2]
@Lamy:
Zitat:
Und während des Downloads:
LBStatus.Caption := 'Es dauert noch einen Moment, die Datei wird heruntergeladen...'
wenn du hier im Forum etwas suchst, dann wirst du entdecken, dass man auch noch einen paar Rückruf-Prizeduren an URLDownloadToFile übergeben kann, damit kannst du dann auch anzeigen lassen, wie weit der Download schon ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#13

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:39
Delphi-Quellcode:
PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR Datei, Ziel: PChar;
  Programmverzeichnis: STRING;
BEGIN
  Programmverzeichnis := ExtractFilePath(Application.ExeName);
  TRY
    Label2.Caption := 'Alte Programmdatei wird gelöscht';
    DeleteFile(Programmverzeichnis + '\UrFtpclient.exe');
    Label1.Caption := 'Bitte warten!';
    Datei := 'http://www.a.toolsnfun.de/urftpclient.exe';
    Ziel := PChar(Programmverzeichnis + '\urftpclient.exe');
    UrlDownloadToFile(NIL, Datei, Ziel, 0, NIL);
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen';
    ELSE
    BEGIN
      sleep(5000);
      Label1.Caption := 'Bitte warten Sie bis die Updatedatei heruntergeladen ist...';
    END;
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen';
  EXCEPT
    showmessage('Download abgebrochen');
  END;
END;
Ich weiß nicht was ein Thread ist aber der hier wartet nicht bis die Datei runtergeladen wurde...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#14

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:41
Die Code-Lib enthält doch ein Beispiel von "UrlDownloadToFile" mit Download-Fortschritt. (Link, s. Beitrag von Luckie). Daraus müsste sich doch was machen lassen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:42
Ich habe ja eher die Befürchtung, dass du deine Labels gar nichts siehst, da sie in OnCreate der Form noch gar nicht angezeigr werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#16

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:46
Oh nein :/

Ich bin so dämlich...
Naja, der Fehler hat sich von Selbst aufgelöst, bitte fragt mich nicht worans gelegen hat....
@ Luckie: Stimmt ^^
Aber wie kann ich in einem Label anzeigen, dass der die Datei zur Zeit runterlädt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#17

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:51
1. Bei mir wartet diese Prozedure

2. ist das doch nicht die, die du im Proggi hast, denn diese hat Fehler drin (nicht compilierbar)
Code:
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen'[color=red][b];[/b][/color]
    ELSE
3. kann es sein. das die Datei (auf'm Server) nicht existiert?

...

Das dürfte eigentlich reichen:
Delphi-Quellcode:
PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR Programmverzeichnis: STRING;
BEGIN
  Programmverzeichnis := ExtractFilePath(Application.ExeName);
  TRY
    Label2.Caption := 'Alte Programmdatei wird gelöscht';
    Application.ProcessMessages;
    DeleteFile(Programmverzeichnis + '\UrFtpclient.exe');
    Label1.Caption := 'Bitte warten!';
    UrlDownloadToFile(NIL, 'http://www.a.toolsnfun.de/urftpclient.exe', PChar(Programmverzeichnis + '\urftpclient.exe'), 0, NIL);
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen';
  EXCEPT
    showmessage('Download abgebrochen');
  END;
END;
[ADD]
Zitat:
Aber wie kann ich in einem Label anzeigen, dass der die Datei zur Zeit runterlädt?
Es nicht im OnCreate runterladen, sonder erst später - z.B. über einen Timer.
und dann :Application.ProcessMessages; Wir fragen dennoch, den wir lernen auch gern und von Fehlern lernt es sich am Besten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:56
Zitat:
Aber wie kann ich in einem Label anzeigen, dass der die Datei zur Zeit runterlädt?
UrlDownloadToFileUrlDownloadToFile <-- Bitte klicken, falls nicht schon längst geschehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#19

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 15:57
Zitat von himitsu:
1. Bei mir wartet diese Prozedure

2. ist das doch nicht die, die du im Proggi hast, denn diese hat Fehler drin (nicht compilierbar)
Code:
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen'[color=red][b];[/b][/color]
    ELSE
3. kann es sein. das die Datei (auf'm Server) nicht existiert?

...

Das dürfte eigentlich reichen:
Delphi-Quellcode:
PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR Programmverzeichnis: STRING;
BEGIN
  Programmverzeichnis := ExtractFilePath(Application.ExeName);
  TRY
    Label2.Caption := 'Alte Programmdatei wird gelöscht';
    Application.ProcessMessages;
    DeleteFile(Programmverzeichnis + '\UrFtpclient.exe');
    Label1.Caption := 'Bitte warten!';
    UrlDownloadToFile(NIL, 'http://www.a.toolsnfun.de/urftpclient.exe', PChar(Programmverzeichnis + '\urftpclient.exe'), 0, NIL);
    IF FileExists(Programmverzeichnis + '\urftpclient.exe') THEN
      Label1.Caption := 'updatedatei heruntergeladen';
  EXCEPT
    showmessage('Download abgebrochen');
  END;
END;
[ADD]
Zitat:
Aber wie kann ich in einem Label anzeigen, dass der die Datei zur Zeit runterlädt?
Application.ProcessMessages; Wir fragen dennoch, den wir lernen auch gern und von Fehlern lernt es sich am Besten.
Zu 1: Jo, bei mir jetzt auch
Zu 2: Ne, hatte das nicht so in der Prozedur drin, war hier nur'n Tippfehler
Zu 3: Ja, das war mein Fehler *schäm*
Zu 4: Danke
Zu 5: ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#20

Re: Herausfinden ob eine Datei fertig heruntergeladen ist

  Alt 16. Apr 2004, 16:02
Zitat von himitsu:
[ADD]
Zitat:
Aber wie kann ich in einem Label anzeigen, dass der die Datei zur Zeit runterlädt?
Es nicht im OnCreate runterladen, sondern erst später - z.B. über einen Timer.
und dann :Application.ProcessMessages;
war gerade beim editieren - und wenn du dann noch Luckie's Link folgst (so das er endlich in Ruhe schlafen kann), dann kannst du sogar dnoch den Downloadfortschritt anzeigen lassen.


(Also die Datei war nicht da, oder unter einem anderenn Namen?)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz