Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Daten aktualisieren sich nicht

  Alt 4. Jul 2012, 20:33
EDIT: Ach und mach mal bei deiner getFile Funktion immer try...finally rein. Die anderen Handles musst du auch mit InternetCloseHandle beenden.
Verweise nochmal darauf, da ich dass nachdräglich gemacht habe.
Die WinInet-API für FTP ist so konzipiert das du nur eine Datei Pro Seesion downloaden oder hochladen kannst. Deshalb auch der try...finally Block für jeden HINTERNET Handle den du hast.

Ändere mach das so ab:

Delphi-Quellcode:
function getfile(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
  hopen, hconnect: HINTERNET;
begin
  hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  try
    hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
    try
      Result := FtpGetFile(hconnect, pchar(localfile), pchar(remotefile), false, fmCreate, FTP_TRANSFER_TYPE_UNKNOWN or INTERNET_FLAG_RELOAD, 0);
    finally
      InternetCloseHandle(hconnect);
    end;
  finally
    InternetCloseHandle(hopen);
  end;
end;
Und @Dalai: Eigentlich brauch er gar kein Delay, da FTPGetFile erst zurückgibt in diesem Fall, wenn er die Datei hat oder wenn es fehlschlägt.

Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat