![]() |
FTP Client
Hi,
bin neu in der Delphi-Szene, komme aus dem CS und VB.Net Bereich. Nun will ich einen FTP Clienten in Delphi programmieren, gibt es dazu Source Code oder Tut´s ? |
Re: FTP Client
Ja, z.B. in INDY oder Synapse. Dafür gibt es auch unzählige Beispiele.
Welches Delphi hast du? |
Re: FTP Client
![]() Ich glaube das klärt die Fragen die du vllt hast. Danke für deine HIlfe |
Re: FTP Client
aloha...
es gibt eine komponente in delphi die nent sich TIdFTP die findest du unter Indy Clients... wenn du diese komponente auf deiner form hast, kannst du im QT die normalen ftp befehele absetzen also z.b. get, put etc... |
Re: FTP Client
Im Bereich "INDY Clients" gibt es die Komponente TIdFTP.
![]() |
Re: FTP Client
Also... vieleicht kann mir ja noch jemand bei der Umsetzung helfen...
Es gibt auf unserer Schule ein Schüler FTP Konto für jeden Schüler. Nun wenn der Schüler sih am FTP anmeldet, gibt es erstmal 3 Server zur Auswahl. Auf diesen 3 Servern liegen mehrere Hundert Verzeicnhnisse worauf der Schüler nur auf eins zugrif hat. Nun soll es so sein, dass der Schüler nach dem Login, nur noch seine Daten sieht, keine Server, keine Verzeichnisse. Dies soll entweder so sein, dass das Programm einen eigenen TreeView hat woraus man runterladen kann, oder ganz einfach, das Programm den Iexplorer PFad und User und PW übergibt. Wie setll ich das am sinnigsten an? |
Re: FTP Client
Die Anzeige im Programm würde ich vorziehen, da hier der Schüler nicht sieht auf welchem Server und Verzeichnis er eigentlich zugreift, aber bedeutet natürlich Mehraufwand.
|
Re: FTP Client
Aber da es nur ein Leserecht gibt, hält es sich ja in Grenzen oder?!
€dit: Ganz nebenbei, breuchte mal bitte Referenz für das Verschlüsseln von PWs die fest gespeichwert werden soll, bitte so das mans auch weieder entschlüssen kann. Und eine Referenz wie man in Delphi am besten Informationn speichert. Viele dank! |
Re: FTP Client
Zitat:
Zitat:
Verschlüsselung: ( 3DES, Rindjael/AES, ...) Speicherung: INI, Registry, Datei, Datenbank, ... |
Re: FTP Client
Also wie ist das mit dem WebExplorer könntest du das bitte genauer Erläutern wie du das meinst?
Kann ich dem TWebExp. Die Infos übergeben??? |
Re: FTP Client
TWebBrowser ist eine Wrapper-Komponente um das ActiveX-Control des IE; gibt es auch als TMozillaBrowser für die GRE. Dieses besitzt die Methoden .Navigate/.Navigate2
|
Re: FTP Client
Zitat:
![]() Zum Speichern gibt es alles Mögliche.
|
Re: FTP Client
wäre es nicht einfacher, den bestehenden ftp server so zu konfigurieren, das jeder schüler seinen eigenen account hat, indem nur der betreffende ordner freigegeben ist, ich meine mal, das ist nen haufen arbeit, aber die kann man ja skripte übernehmen lassen, das muss man ja nur einmal machen. bei Gene6 FTP Server müsste man nur ne ne ini datei für jeden user schreiben, wo ein passwort (verschlüsselt) drinne steht, und der pfad, auf den der nutzer zugang hat, ich denke mal das lässt sich leicht automatisieren, ist auf jeden fall viel einfacher als sich nen ftp server selbst zu schreiben, der im endeffekt nichts anderes macht
ich will dich zwar nicht vom programmieren abhalten, aber ich denke mal, man muss das rad ja nicht 2 mal erfinden |
Re: FTP Client
Verstehe schon, bin dir auch nicht böse oder so...
Aber das ist nun mal mein Auftrag, und diesen soll ich so erfüllen :) Und mal ehrlich, würdest du zu einem Kunden sagen, der dich beauftragt "Ne das brauchen sie nicht, das geht auch so?" |
Re: FTP Client
naja ich bin eigendlich davon ausgegangen, das es sich bei dir um entwerder einen lehrer oder auch einen schüler handelt der von der schulverwaltung nen auftrag gekriegt hat,
wenn ich da an unseren info lehrer denke, der wäre mit so einer aufgabe hilflos aufgeschmissen, und hätte sie zu meiner schulzeit warscheinlich an mich weitergegeben. meine weiteren gedankengänge waren, das es der schulleitung föllig egal wäre, wie du das problem löst (ob mit viel arbeit oder wenig) und ich meine mal, es ist deine freizeit. ich hänge seit 6 wochen an nem ftp client) wenn ich das richtig aufgefasst habe, sollen dann die Schüler mit deinem neuen prog. nur noch auf ihren ordner zugreifen können (bei bestehendem verwaltungssystem) was aber wenn sich die schüler nicht daran halten, und weiter wie gewohnt mit nem normalen ftp prog. auf die seite einlogen und immer noch die daten von allen anderen sehen, denke mal das ist nicht sinn und zweck der sache, also irgendwas musst du an dem server verändern, und warum nicht mit einfachen mitteln? Zitat:
|
Re: FTP Client
Also... wir sind ne IT Schule leider auch mit HöHa Lehrgängen und sowas...
Jeder hat die Möglichkeit von Zuhause seine Daten auf seinem SchulOrdner runter zu laden, kommt aber aufgrund der EBrechtigungen auch nur in seinen Ordner rein. Nun ist das Problem, vor allem für die Mädels der HöHa, dass die sich nicht so damit auskennen und frioh sind wenn sie den PC anbekommenö. Und genau da soll mein Programm eingesetzt werden. Einfach eine Exe zum Download, in der ma nur User und PW eingibt und automtaisch auf sein Laufwerk kommt (die Zuordnung ist durch den Loginnamen, da Logon == Verzeichnisname möglich). Mehr nicht?!?!?! Es würde also entweder alles über einen neuen FTP Clienten gemacht werden, oder einfach nur das Login und die Zuordnung und dann an den IE weitergegeben werden. |
Re: FTP Client
na sag das doch gleich, das ist wirklich nicht so schwer
also nimm ne tidftpclient componente, mach am anfang ne dialogabfrage nach den userdaten, verbinde dich zu dem server (server einstellungen kannst du fest einstellen, denke mal nicht, das sich der domönen name ständig ändert)) und lass das zeug in nem treelistview anzeigen
Delphi-Quellcode:
den rest findeste zu hauf hier im forum
IDFtpClien1.username:='USERNAME';
IDFtpClien1.Password:='pwd'; IDFtpClien1.Port:=21; //standart; IDFtpClien1.host:='domänen name' //ohne ftp:// try IDFtpClien1.Connect; except label1.caption:='Fehler'; end; IDFtpClien1.List; ... gibt dann noch so befehle wie IDFtpClien1.get(dateiname,lokalerpfad) und viel mehr brauchst du ja nicht wenn ich dir nen tipp geben darf, hol dir das gleiche server programm und lass es auf deinem rechner laufen, so siehst du in der log datei, wenn dein prog. mal wieder irgend welchen quatsch macht, das ist beim entwickeln sehr hilfreich, denn nicht jeder ftp server ist gleich, und liefert die gleichen antorten auf die selben befehle |
Re: FTP Client
Ich glaub ich bin irgednwei dumm.... ich find die KOmponente nicht,. muss ich was besonderes einfügen?
Finde keine Komponente mit dem Namen TIdFtpClient. Benutze TurboDelphi... -------------- EDIT: Hat sich erledigt, hab vergessen was einzubinden. -------------- EDIT2: Öhm... nette Syntax bei Delphi xD Was bedeutet := ? EDIT3: Habe ein Problem bei einer Textbox. Habe es erst unverschlüsselt (Kein PWChar) und mit Text belegt, nun will ich, dass wenn ein Buchstabe eingegeben wird, alles Text gelöscht wird, der PWChar eingestellt wird und der Buchstabe erscheint. Nun kann ich den Buchstaben nicht abfangen. Wie mach ich das? Habe jetzt in der Changed den PWChar eingefügt und das Textbox geleert, Problem ist, das der erste Eingegebene Buchstabe weg ist, was ja auch nicht sein soll. EDIT4: Wie kann ich einen Fehler abfangen so das ich anzeige welcher es ist? |
Re: FTP Client
Hier mal mein Quellcode:
Delphi-Quellcode:
Bei der ftp.Username = .... tritt schon ein Fehler auf, warum? Bitte um HIlfe
unit Main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP; type TfrmMain = class(TForm) lblUsername: TLabel; lblPasswort: TLabel; txtPasswort: TEdit; txtUsername: TEdit; chbUserSpeichern: TCheckBox; btnStart: TButton; btnCancel: TButton; lblError: TLabel; ftp: TIdFtp; procedure btnCancelClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure txtUsernameChange(Sender: TObject); procedure txtPasswortChange(Sender: TObject); procedure btnStartClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.btnCancelClick(Sender: TObject); begin frmMain.Close(); end; procedure TfrmMain.btnStartClick(Sender: TObject); begin try ftp.Username := txtUsername.Text; ftp.Password := txtPasswort.Text; ftp.Port := 21; ftp.Host := 'ajc-bk.dyndns.org'; ftp.Connect(); except //lblError.Text = ''; end; end; procedure TfrmMain.FormCreate(Sender: TObject); begin txtUsername.Font.Style := [fsItalic]; txtPasswort.Font.Style := [fsItalic]; frmMain.chbUserSpeichern.Checked := true; end; procedure TfrmMain.txtPasswortChange(Sender: TObject); begin txtPasswort.Font.Style := []; txtPasswort.PasswordChar := '*'; end; procedure TfrmMain.txtUsernameChange(Sender: TObject); begin txtUsername.Font.Style := []; end; end. |
Re: FTP Client
Was für einen Fehler bekommst du?
|
Re: FTP Client
vielleicht 'txtPasswort.PasswordChar := '*'; ' in der procedure TfrmMain.FormCreate ausführen, bzw bei den atributen des edit's bearbeiten, jedoch nicht in der "on change" procedure ausführen
die beiden letzten proceduren, lass die einfach mal weg, die erfüllen keinen sinn (in meinen augen) |
Re: FTP Client
Hi, sorry war eben nicht am PC...
die Methoden erfüllen Ihren Zweck, da dort Standartmäßig ein kursiver sichtbarer Hilfetext drinsteht, "Geben Sie *** ein" und wenn der Text überschrieben wird, mit einem Zeichen, soll es ja nicht mehr kursiv sein und das PW nicht mehr sichtbar. Der Fehler in der Zeile ftp.Username := txtUsername.Text; Was für einer kann i9ch nicht sagen da ich nciht weiß wie ich dauf zu greife.... Hab ja kein Exception Objekt wie in C# |
Re: FTP Client
Zitat:
|
Re: FTP Client
Sorry bin neu in Delphi oben hab ich ja den QC, wie sprech ich den das Objekt an?
Was ist eine AV? |
Re: FTP Client
Sry für Doppelpost...
Ok, habs jetzt nachgeschlagen wie ich Exception Objekte erstelle... ziemlich "anders" als bei C# und VB finde ich... egal... hier die Fehlermeldung: Zugriffsverletzung bei Adresse 004047F0 in Modul 'ftp.exe'. Schreiben von Adresse 000000DC. Das passiert in der einen Zeile da, in der er rausspringt. |
Re: FTP Client
haste mal versucht dein prog im stepover modus auszuführen, weil die stelle die er dir anzeigt muss nicht immer die sein, wo der fehler entstanden ist, setz einfach mal nen breakpoint davor, und lass dein programm nach dem anhalten mit F7 weiterlaufen, ansonsten kann ich nähmlich im scource nichts auffälliges entdecken, schon gar nicht an der stelle
|
Re: FTP Client
Hallo,
gib mal die beiden Klammern () in Zeile 51 nach dem Connect weg ... bzw. besteht zu diesem Zeitpunkt überhaupt eine Verbindung zum Internet ? mfg Herbert |
Re: FTP Client
Öhm, hast du den FtpClient auf den Form gezogen oder zwischendurch ftp.Free ausgeführt?
Für mich sieht das aus als wäre ftp schon zerstört wenn du darauf zugreifst... @hsbc, das mit den Klammern ist schon richtig so. Ist einfach hübscher :) |
Re: FTP Client
Hi,
inzwischen weiß ich das es an TurboDelfi gelegen hat, das keine fremden Komponenten zulässt. Nun hab ich Borland Dephi6 und er sagt mir das er die Dateien im uses nicht findet.... BITTE HELFT MIR BIN ECHT AM ENDE MIT DEM ****** BITTE
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP; |
Re: FTP Client
*push* BITTE
|
Re: FTP Client
Zitat:
Es hätte gereicht ihn beim Erzeugen der Form mitanzulegen. Design time bringt dir bei dieser Komponente sowieso nicht viel. ;) Am einfachsten geht das in Delphi wenn man AfterConstruction überschreibt. Dann wird es nach jedem Constructor ausgeführt. :)
Delphi-Quellcode:
Ich würde dir trotzdem zu TurboDelphi raten. Die bormalen Controls/Komponenten sind für dich mehr als ausreichend. Die Indys auf ein Form zu ziehen bringt dir eigentlich nicht viel, da du sie sowieso nur im Code benutzt.
type
TfrmMain = class(TForm) ...snip procedure AfterConstruction; override; ...snip procedure TfrmMain.AfterConstruction; begin ftp := TIdFtp.Create(self); // da das Form als Owner übergeben wird musst // du dich nicht um das Freigeben von ftp kümmern das // wird dein Form autom. machen wenn es selbst freigegeben wird end; Falls du es dennoch in D6 machen willst: Du müsstest 2 Packages von den Indys haben. Du findest sie im BDS4\Source\Win32\Indy9 Ordner. Öffne zuerst indy.dpkw und kompiliere es. Jetzt öffnest du dclindy.dpkw und drückst auf "install". Dadurch wird dieses Package ebenfalls kompiliert und danach alle Komponenten in die IDE installiert. btw: Pushing wird hier erst nach 24h gern gesehen. Jeder hat es hier eilig Antworten zu kriegen und wer sich für dein Problem interessiert wird es schon allein bemerken... |
Re: FTP Client
Ok nach 6 Stunden und 5 Entwicklungsumgebungen gebe ich mich als geschlagen. Ich gebe auf. Ich schwöer euch ich habe gerade 3 Stgunde per IRC es ausprobiert und ich kann nicht mehr. Kein Arsch ist heutzutage bereit jemandem so zu helfen das er es versteht.
Danke für eure Hilfe... Sollte doch noch ein Funken Hoffnung bestehen und jemand legt sich bereit mir intensiver zu helfen, wäre ich sehr dankbar und würde sogar Geld überweisen. |
Re: FTP Client
Zitat:
In der Foren übersicht findest du über der Shoutbox einen Link zum DP-Chat, probier den einfach mal aus. ;) |
Re: FTP Client
Ich schwäöre dir is tus, wenn du wüsstest was ich eben schon getan hab würdest du dich vor lachen nciht mehr einkriegen -.-*
Bin im Chat könntest du reinkommen? |
Re: FTP Client
Hi,
hast Du die Indy-Komponenten nicht installiert ?! Weiß gar nicht mehr ob die bei D6 standard mässig installiert sind. Gruß Data |
Re: FTP Client
Zitat:
|
Re: FTP Client
vielleicht kannst du deinen bisherigen quellcode mal schicken, das könnte helfen deine fehler zu finden, wir wollen dir ja helfen, aber du musst schon selber was dafür tun
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 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