Hallo liebes Forum,
Ich hab mich an ein neues Projekt mit Delphi7 angefangen, dessen Grundlage darin besteht das einmal pro Sekunde eine Datei von einem
FTP server gelesen wird und anschließend in einem memo angezeigt wird.
Auf meinem eigenen Rechner funktioniert dies ohne Probleme. Auf den Rechnern zweier Freunde hingegen wird die betreffende Datei nur einmal zu Anfang geladen - danach wird sie nicht mehr aktualisiert.
Hier die entsprechende Stelle:
Delphi-Quellcode:
procedure TFOrm1.ftpschleife;
var
ergebnis: boolean;
programpath: string;
begin
programpath:=ExtractFilePath(Application.Exename) ;
while schalter do begin
ergebnis:=getfile(ftp_array[1],ftp_array[2],ftp_array[3],ftp_array[4]+'tracer.txt',programpath+'tracer.rax');
utime.Delay(500);
try
memo1.Lines.LoadFromFile(programpath+'tracer.rax');
except
edit1.Text:= 'Fehler beim einlesen der Datei!';
end;
memo1.Lines.LoadFromFile(programpath+'tracer.rax');
end;
end;
im ftp_array befinden sich die Serverdaten.
Hier noch die verwendete getfile Funktion:
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);
hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Result := FtpGetFile(hconnect, pchar(localfile), pchar(remotefile), false, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0);
InternetCloseHandle(hconnect);
end;
Bei mir funktioniert das alles ohne Probleme.
Deswegen hab ich Probleme damit eine Lösung zu finden.
lg
EDIT: Also um das Problem etwas genauer zu beschreiben: Die Zieldatein ("tracer.rax") aktualsiert sich nicht. Trotzdem is die variable "ergebnis" immer true.
Wenn meine Freunde die Datei ("tracer.rax") während das Programm läuft bearbeiten, wird die Änderung immerwieder rückgängig gemacht und der ursprüngliche Inhalt (das was auch im memo steht) wird wieder in Datei geschrieben.