![]() |
Re: Abfrage
ups, also ohne download meinte ich das die datei nicht zu finden ist dann aufm dem computer ...
|
Re: Abfrage
Du musst die Datei herunterladen, sonst kannst du nicht deren Inhalt nutzen. Via FTP kann man die Datei AFAIK nicht nur im Arbeitsspeicher benutzen, sondern muss diese wirklich herunterladen. Das kann aber ja im Verzeichnis für temporäre Dateien passieren und die kann ja sofort wieder gelöscht werden.
|
Re: Abfrage
Zitat:
|
Re: Abfrage
Dann lad sie in den RAM? Wobei man sie auch dort auslesen kann.
|
Re: Abfrage
kann mir wer ein code beispiel zeigen?
bitte |
Re: Abfrage
Für FTP oder das laden in einen MemoryStream?
|
Re: Abfrage
Also ich kenne keine FTP-Funktion um eine Datei ohne Zwischenspeicherung auszulesen, weder bei Indy noch per API. Man könnte höchstens den Befehl selbst schicken und dann das Ergebnis selbst auswerten. Aber
![]() Am besten nimm Indy und TIdFTP, lade die Datei ins Verzeichnis für temporäre Dateien, werte sie aus und lösche sie sofort wieder. Die Auswertung geht schnell und sicher ist das Verfahren ja ohnehin nicht, deshalb ist das ja egal, dass die Datei kurz dort zu finden ist. |
Re: Abfrage
Was ich schon hab ist eben das:
Delphi-Quellcode:
und jetzt möcht ich das überprüfen lassen wie ich es schonmal geschieben hab und die datei mit dem passwort kann gedownloadet werden, sollte aber wieder direkt gelöscht werden. Wie gesagt es ist nur im netzwerk ...
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; |
Re: Abfrage
So machst du es dir unnötig schwer, denn Indy und TIdFTP ist da sehr viel einfacher. Aber gut.
Der Rückgabewert sollte dir anzeigen, ob die Datei erfolgreich gefunden und heruntergeladen werden konnte. Wenn ja, dann kannst du jetzt die lokale Datei öffnen und auslesen:
Delphi-Quellcode:
Wobei YourPassword das zu prüfende Passwort, YourFileName die lokale heruntergeladene Datei und PasswordMatches die Variable für das Ergebnis des Passwortvergleichs ist.
var
MyFile: TStringList; PasswordMatches: Boolean; begin MyFile := TStringList.Create; try MyFile.LoadFromFile(YourFileName); PasswordMatches := Trim(MyFile.Text) = YourPassword; finally MyFile.Free; end; end; |
Re: Abfrage
Wobei du die Datei mit idFtp.Get() gleich in einen MemoryStream laden kannst und so keine lokale datei geschriben wird.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 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