Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Download-Programm (https://www.delphipraxis.net/100441-download-programm.html)

s-off 28. Sep 2007 10:36

Re: Download-Programm
 
Mit ein bissel Überlegung und Betrachtung der anderen Einträge in der Uses-Klausel, hättest Du gemerkt, dass es 'IdBaseComponent' lauten muss :zwinker:

Trotzalledem musst Du die Komponenten natürlich erst installieren. Du findest einen Link dorthin, sowie ein Tutorial zu den Komponenten hier.

Alex_XP 28. Sep 2007 10:40

Re: Download-Programm
 
Ist ja schön und gut, es funktioniert aber trotzdem nicht.

Außerdem sagte ich ja bereits oben
Zitat:

Bei den anderen sachen ist es genauso.
daher liegt es also nicht am fehlenden I

Lade mir die Komponenten dann mal runter

Kevin 28. Sep 2007 11:04

Re: Download-Programm
 
Zitat:

Zitat von Alex_XP
Lade mir die Komponenten dann mal runter

Und dann wunderst Du Dich, daß die Komponenten (noch) nicht gefunden werden...?! :gruebel:

s-off 28. Sep 2007 12:36

Re: Download-Programm
 
Zitat:

Zitat von s-off
Trotzalledem musst Du die Komponenten natürlich erst installieren.

:zwinker:

Rastaman 28. Sep 2007 15:31

Re: Download-Programm
 
MSDN-Library durchsuchenURLDownloadToFile ist doch viel einfacher und braucht keine Indys.

s-off 28. Sep 2007 15:40

Re: Download-Programm
 
Zitat:

Zitat von Rastaman
MSDN-Library durchsuchenURLDownloadToFile ist doch viel einfacher und braucht keine Indys.

Sehr schön, kannte ich noch gar nicht :thumb:

Delphi-Quellcode:
Procedure TForm1.Button2Click(Sender: TObject);
Const
   sSOURCE: String = 'http://www.delphipraxis.net/templates/DPClassicBlue/images/logo_left.gif';
   sTARGET: String = 'C:\Download\Test.gif';
Begin
   URLDownloadToFile(Nil, PChar(sSOURCE),PChar(sTARGET), 0, Nil);
End;
Funktioniert einwandfrei! Man lernt nie aus - danke :-D

Klaus01 28. Sep 2007 15:49

Re: Download-Programm
 
Zitat:

Zitat von Rastaman
MSDN-Library durchsuchenURLDownloadToFile ist doch viel einfacher und braucht keine Indys.

Hallo Rastaman,

muß ich mir auch notieren und wenn ich es brauche auch wiederfinden.

Grüße
Klaus

IceTube 28. Sep 2007 19:03

Re: Download-Programm
 
Zitat:

URLDownloadToFile ist doch viel einfacher und braucht keine Indys.
^Indy ist doch nicht SO schwer !?!

s-off 28. Sep 2007 20:00

Re: Download-Programm
 
Zitat:

Zitat von IceTube
Zitat:

URLDownloadToFile ist doch viel einfacher und braucht keine Indys.
^Indy ist doch nicht SO schwer !?!

Hmpf, darum geht es doch gar nicht. Freu Dich doch, dass jemand eine Alternative vorstellt, die mit Hausmittelchen auskommt und keinerlei Drittkomponenten benötigt...
Also ich habe mich über 'URLDownloadToFile' sehr gefreut :!:

Rastaman 29. Sep 2007 01:03

Re: Download-Programm
 
Ich hab mir ma die Mühe gemacht eine Funktion mit Downloadgeschwindigkeit zu basteln für größere Dateien.
Habe hier allerdings nur VC installiert, werde alles aber morgen so gut es geht nach Delphi übersetzen.
Hat auch den Vorteil, dass das Programm nicht komplett einfriert.
Wer grad Lust hat kann mir das Übersetzen ja schonma abnehmen :-D

Code:
bool DownloadFile(const char *lpszURL, const char *lpszFile)
{
   bool   result = false;
   int      kbpsCounter = 0;
   int      kbps;
   DWORD   ticks, bytesRead;
   BYTE   buffer[1024];

   FILE   *hDLFile;

   HINTERNET hSession, hRequest;

   /* Session öffnen */
   hSession = InternetOpen("AppTitel", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
   if (hSession != NULL)
   {
      /* URL öffnen */
      hRequest = InternetOpenUrl(hSession, lpszURL, NULL, 0, INTERNET_FLAG_RELOAD, 0);
      if (hRequest != NULL)
      {
         /* Download starten
            Vllt checken ob Datei schon existiert? */
         hDLFile = fopen(lpszFile, "wb");
         if (hDLFile != NULL)
         {
            ticks = GetTickCount();
            while (true)
            {
               /* Daten auslesen */
               if (InternetReadFile(hRequest, buffer, 1024, &bytesRead) ==   false)
               {
                  break;
               }

               /* kbps jede Sekunde berechnen */
               kbpsCounter += bytesRead;
               if (ticks <= (GetTickCount() - 1000))
               {
                  kbps = kbpsCounter / 1024;
                  printf("%d kb/s\n", kbps);   //kbps ausgeben
                  kbpsCounter = 0;
                  ticks = GetTickCount();
               }

               /* In Datei schreiben */
               if (bytesRead != 0)
               {
                  fwrite(buffer, bytesRead, 1, hDLFile);
               }
               else   // Download beendet
               {
                  result = true;
                  break;
               }

            }
            fclose(hDLFile);
         }
         InternetCloseHandle(hRequest);
      }
      InternetCloseHandle(hSession);
   }
   return result;
}
Aufruf:
Code:
DownloadFile("http://www.Delphipraxis.net", "index.html");


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr.
Seite 2 von 3     12 3      

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