ich bin neu hier im Forum, sowie relativ unerfahren (nur im Schulunterricht benutzt) mit Lazarus.
Dennoch habe ich mich nach ein paar Projekten daran versucht ein Programm zu schreiben, das mithilfe der WinInet-API eine Datei auf einen FTP-Server läd.
Hier der Quelltext:
Code: Alles auswählen
function putfile(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 := FtpPutFile(hconnect, pchar(localfile), pchar(remotefile), FTP_TRANSFER_TYPE_UNKNOWN, 0);
InternetCloseHandle(hconnect);
end;
procedure TFTP2Form.UploadButtonClick(Sender: TObject);
var
fusername, fpassword, fserver, flocalfile, fremotefile: string;
begin
fusername:=UserEdit.Text;
fpassword:=PasswordEdit.Text;
fserver:=ServerEdit.Text;
fremotefile:=DateiFTPEdit.Text;
flocalfile:=DateiPCEdit.Text;
putfile( fserver, fusername , fpassword , flocalfile , fremotefile );
end;
Bei der Funktion habe ich mir Hilfe geholt und "putfile()" in der Prozedur funktioniert auch einwandfrei.
Nun aber mein Problem: Es funktionert nur, wenn ich anstatt von Variablen, die ich zuvor mit den Editfeldern fülle, die Parameter direkt im Quelltext bestimme.
Bsp.:
Code: Alles auswählen
putfile( '123.456.789', 'benutzer', 'passwort','C:\test.txt','/files/test.txt')
Wenn ich es mit den Variablen machen möchte, wird es gar nicht erst hochgeladen.
Weiß jemand was ich falsch gemacht habe?
MfG GreyFox