![]() |
Textdatei runterladen - lokal speichern - ohne User-Eingriff
Hallo,
ich habe ein Programm, welches Daten aus einer Text-Datei benutzt und dann Berechnungen durchführt. Die Textdatei wird viermal im Jahr zu bestimmten Zeiten (letzter Werktag im Monat) geändert und dann bereitgestellt wird. Hierzu benutze ich einen Link. Wenn man jetzt aber im Browser auf diesen Link klickt, erscheint die übliche Meldung: speichern oder öffnen. Meine Vorstellung ist jetzt, dass mein Programm am Datum erkennen soll, dass wieder ein Update fällig ist. Dies habe ich schon fertig. Mein Problem ist es, die Datei runter zu laden, ohne dass der Benutzer was dabei tun muss. Daher erbitte ich Hilfe bei folgenden Schritten: - Verbindung zu einem HTTP-Link aufbauen - Datei empfangen - lokal speichern und das alles ohne das Benutzer was machen muss. Würde mich über ein bisschen Hilfe sehr freuen. Gruß Daniel |
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Das sollte sehr einfach mit den Indys gehen ;)
Evtl. vorher mit IdHTTP.Head() nachgucken, ob die Datei runtergelden werden muss, und mit IdHTTP.Get() kannst edie Datei runterladen. |
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Delphi-Quellcode:
uses ...,URLMon;
function DownLoadInternetFile(const Source, Dest : String): Boolean; begin Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0 end; .... if not DownloadInternetFile('http://www.deinserver.de/pfad/datei.txt', 'C:\datei.txt') then raise Exception.Create('Datei bla bla konnte nicht heruntergeladen werden'); |
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Delphi-Quellcode:
Funktioniert natürlich auch mit Memory- oder Stringstreams, Stringstream sinnvoll, wenn du die Textdatei sofort auslesen willst, um damit weiterzuarbeiten.var lFileStream : TFileStream; begin lFileStream := TFileStream.create('C:\',fmCreate); IdHTTP1.Get('http://www.url.de/file.txt',lFileStream); lFileStream.destroy; end; Brauchst natürlich Indy9/Indy10, welches eh sinnvoll ist, bei Delphi zu installieren. mfg lowF PS: Am besten noch mit try - except abfragen umgeben, um sicher zu gehen. |
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Das würde ich aber ein wenig erweitern.
Delphi-Quellcode:
var lFileStream : TFileStream;
begin lFileStream := TFileStream.create('C:\',fmCreate or fmOpenWrite or fmShareDenyWrite); try IdHTTP1.Get('http://www.url.de/file.txt',lFileStream); finally lFileStream.Free; end; end; |
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Danke dafür, wusste den Trick mit "or" gar nicht. Gut zu wissen.
|
Re: Textdatei runterladen - lokal speichern - ohne User-Eing
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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