Lazarus/Delphi: Dateien aus dem Netz herunterladen?
Hey Gutefragecommunity, Für ein Vokabeltrainerprojekt ,welches wir in der Klasse verfolgen, möchten wir eine Synchroniesierung mit dem Internet einbauen. Gibt es eine Möglichkeit z.B. Textdateien, jpgs, pngs etc.von OneDrive, Dropbox oder sonst was durch eine URL herunterzuladen. Also mit einem Button soll die .Txt von Dropbox heruntergeladen und irgendwo auf dem PC gespeichert werden. Hoffe jemand kann mir helfen, alle Websuche war leider bisher Erfolglos ich kann nur Bilder von HTTP Webseiten herunterladen, bei HTTPS gibt es aber Probleme.
Danke im Voraus
TheMaker
2 Antworten
Ich kopiere Dir ein Codeschnipsel her. Es ist Teil aus einer Sammlung. Willst Du die ganze Sammlung (ich habe sie nicht mehr), dann kopiere Text aus dem Schnipsel und frage Google.
Doch vielleicht kommst Du damit zurecht:
function TFrame_myMethode.DownloadURL(const aUrl: string): Boolean;
var
hSession: HINTERNET;
hService: HINTERNET;
lpBuffer: array[0..1024 + 1] of Char;
dwBytesRead: DWORD;
begin
Result := False;
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
if Assigned(hSession) then
begin
hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0);
if Assigned(hService) then
try
while True do
begin
dwBytesRead := 1024;
InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead);
if dwBytesRead = 0 then break;
lpBuffer[dwBytesRead] := #0;
end;
Result := True;
finally
InternetCloseHandle(hService);
end;
end;
finally
InternetCloseHandle(hSession);
end;
end;
Warum steht in den Tags Python und Daphi? Nun denn, egal ...
Ja, das was du vor hast, ist natürlich leicht möglich!Steht alles in der offiziellen Dokumentation:
http://wiki.lazarus.freepascal.org/Internet_Tools#Download_a_file:Ansonsten könntest du vielleicht mal euren Lehrer fragen.
Du könntest auch die dafür vorgesehenen APIs von DropBox oder OneDrive nutzen. Wie das geht, findest du bei Google.