cs_foxz
Messages postés101Date d'inscriptionmercredi 8 octobre 2003StatutMembreDernière intervention25 février 2009 11 janv. 2007 à 15:40
Bah, VERY SIMPLE...
si tu as une autre proposition de nom...
sinon j'utilise le protocole FTP pour envoyer des fichiers.
donc par definition c'est un clientFTP...
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 11 janv. 2007 à 15:28
Moi oui j'ai compris : par contre je ne suis pas sur que tu es compris ce qu'est un client FTP ;) (FTP ?? Voir ton titre ;)).
Bon le débat est clos.
cs_foxz
Messages postés101Date d'inscriptionmercredi 8 octobre 2003StatutMembreDernière intervention25 février 2009 11 janv. 2007 à 14:06
Necessite la JVCL point.
Francky23012301 : t'es sur d'avoir compris a qui servait mon soft ?
foxi : merci des conseils...
tu aurais pu remarqué que "abracadabra" ne servait a rien !
Sinon je n'utilise jamais with...do... et j'aime bien format (plus clair).
Le programme fonctionne en situation réel.
Nouvelle version disponible.
cs_abdousoft
Messages postés100Date d'inscriptionmardi 3 août 2004StatutMembreDernière intervention 5 novembre 2007 11 janv. 2007 à 10:37
salut
Votre Source manque de composants JVCL,
c'est pour ca je te conseille d'utilise des composants delphi
standard ou bien placer les composants coresspondant dans un fichier ZIP.
Bonne chance!
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 10 janv. 2007 à 17:59
Dommage en effet d'utiliser la JVCL plutot que la VCL standard, ça aurait été plus interressant ... et plus "diffusable".
par contre, pourquoi utiliser le type File (dans fmfile) plutot que le TFileStream qui permet plus de choses ...
c'est une erreur aussi d'utiliser Format dans le OnCreate principal comme tu le fait.
pour la concatenation de chaine il vaux mieux faire :
pour une seule convertion Int > Str mieux vaut utiliser inttostr que format... par contre, a partir de 2 ou plus on peu utiliser format les yeux fermés.
il faut par contre ne pas utiliser format pour la concatenation de chaine ... c'est trop lents par rapport a sA+sB+sC.
ensuite, fait attention aux fuites memoires!!! quand on crée un objet on doit le liberer immediatement aprés ou a la fin du programme et au moins utiliser les balise TRY ... FINALLY...
procedure TForm1.FormCreate(Sender: TObject);
begin
with TIniFile.Create(ChangeFileExt(paramstr(0),'.ini')) do begin
TRY
host := ReadString('server','host','');
hnam := Readstring('server','name','');
port := Readstring('server','port','21');
maxthread := ReadInteger('thread','max',4);
logn := Readstring('login','name','anonymous');
logp := Readstring('login','pass','anonymous');
FINALLY
Free;
END;
end;
label1.Caption := format('Server : %s:%s - L/P : %s / ****** - Thread : %d',[hnam,port,logn,maxthread]);
add;
nbftp := 0;
abracadabra := 0;
end;
le numero de port devrait etre stocké avec Read/WriteInteger
a ce moment la on peu utiliser Format :
format('Server : '+hnam+':%d - L/P : '+logn+' / ****** - Thread : %d',[port,maxthread]);
si on est respectueux des protocols on devrait noter les parametres FTP de cette façon :
soit :
'Serveur : '+Logn+':******@'+hnam+':%d' qui serait un ordre plus que judicieux pour ne pas perdre les utilisateurs.
et enfin, ne pas oublier l'utilisation de WITH ... DO pour eviter les gros pavé repetitif :
with JVScrollText1.Items do begin
Clear;
Add(co);
Add('licence : freeware');
Add('no com, gov or mil usage');
Add('');
Add('Host : '+host);
end;
JvScrollText1.Active:=true;
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 10 janv. 2007 à 15:59
Arff pardon : ouvre mon soft et l'utilise sans se prendre la tete. J'avais pas compris ca au départ d'ou ma dernière remarque : lol
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 10 janv. 2007 à 15:50
Sans vouloir te vexer,je vais te contredire :
1)Ton soft s'inscrit dans les 15 clients FTP déjà posté sur CS, avec beaucoup de fonctionnalités en moins. De plus on ne peut pas meme pas choisir le fichier que l'on veut envoyer.
2)Sur la douzaine de commandes spécifiques au protocole FTP, ton source n'en reprend que deux.
3)Fichier Ini : on ne saisit ni le User ni le Password : on ne peut utiliser que celui par défaut. Ton fichier Ini ne sert à rien : tu pouvais utiliser cela directement
4)Sur DelphiFr on n'utlise pas le JVCL et on n'a pas le choix que de l'avoir, pour le compiler.
De ce fait cet source n'est pas compilable : du reste je n'ai pas pu le faire.
5)Si tu postes ici c'est pour etre soumis à la critique : si cela te gène, abstient toi de poster. C'est les règles du jeu.
cs_foxz
Messages postés101Date d'inscriptionmercredi 8 octobre 2003StatutMembreDernière intervention25 février 2009 10 janv. 2007 à 15:01
Mon soft n'est pas un n°ieme client FTP.
(A) doit envoyer régulièrement un/des fichiers à (B).
(B) distribue mon soft a (A) en configurant le .ini à ces propres parametres.
(A) ouvre mon soft et l'utilise sans se prendre la tete.
Meuh? est-ce claire ? :-)
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 10 janv. 2007 à 14:13
Salut,
Travaillant actuellement sur le sujet, je te cache pas que je suis un peu décu :
*Non paramètrage du mot de passe : Il existe un composant Indy Super : le TidUserManager
De memoire
Procedure Add_User(AUsername,APassword : string);
Begin
With IdUserManager1.Accounts do
Add.Username:=AUsername;
Add.Password:=Password;
End;
L'avantage de ce composant c'est que tu peux gérer les droits suivant l'utilisateur.
Autre remarque : un client ou serveur FTP ne fait pas que transférer des fichies : on peut tout faire avec via la commande SendCmd(). Et oui pas besoin de TidTCP.
Ensuite pour télécharger ou envoyer un fichier sur un serveur il est primordiale d'avoir acces à l'arborescence du PC distant.
Ensuite quel dommage : des commandes simples, comme supprimer ou créer un répertoire, supprimer un fichier, renommer un fichier, récupérer un fichier ect ect ne sont pas présente. Pourtant c'est simple
Bon allez je suis sur que tu vas arranger tout cela ;)
11 janv. 2007 à 15:40
si tu as une autre proposition de nom...
sinon j'utilise le protocole FTP pour envoyer des fichiers.
donc par definition c'est un clientFTP...
11 janv. 2007 à 15:28
Bon le débat est clos.
11 janv. 2007 à 14:06
Francky23012301 : t'es sur d'avoir compris a qui servait mon soft ?
foxi : merci des conseils...
tu aurais pu remarqué que "abracadabra" ne servait a rien !
Sinon je n'utilise jamais with...do... et j'aime bien format (plus clair).
Le programme fonctionne en situation réel.
Nouvelle version disponible.
11 janv. 2007 à 10:37
Votre Source manque de composants JVCL,
c'est pour ca je te conseille d'utilise des composants delphi
standard ou bien placer les composants coresspondant dans un fichier ZIP.
Bonne chance!
10 janv. 2007 à 17:59
par contre, pourquoi utiliser le type File (dans fmfile) plutot que le TFileStream qui permet plus de choses ...
c'est une erreur aussi d'utiliser Format dans le OnCreate principal comme tu le fait.
pour la concatenation de chaine il vaux mieux faire :
'Server : '+hnam+':'+port+' - L/P : '+logn+' / ****** - Thread : '+inttostr(maxthread);
jvscrolltext1.Items.Add(f.ffile+' sended.');
pour une seule convertion Int > Str mieux vaut utiliser inttostr que format... par contre, a partir de 2 ou plus on peu utiliser format les yeux fermés.
il faut par contre ne pas utiliser format pour la concatenation de chaine ... c'est trop lents par rapport a sA+sB+sC.
ensuite, fait attention aux fuites memoires!!! quand on crée un objet on doit le liberer immediatement aprés ou a la fin du programme et au moins utiliser les balise TRY ... FINALLY...
procedure TForm1.FormCreate(Sender: TObject);
begin
with TIniFile.Create(ChangeFileExt(paramstr(0),'.ini')) do begin
TRY
host := ReadString('server','host','');
hnam := Readstring('server','name','');
port := Readstring('server','port','21');
maxthread := ReadInteger('thread','max',4);
logn := Readstring('login','name','anonymous');
logp := Readstring('login','pass','anonymous');
FINALLY
Free;
END;
end;
label1.Caption := format('Server : %s:%s - L/P : %s / ****** - Thread : %d',[hnam,port,logn,maxthread]);
add;
nbftp := 0;
abracadabra := 0;
end;
le numero de port devrait etre stocké avec Read/WriteInteger
a ce moment la on peu utiliser Format :
format('Server : '+hnam+':%d - L/P : '+logn+' / ****** - Thread : %d',[port,maxthread]);
si on est respectueux des protocols on devrait noter les parametres FTP de cette façon :
Login:Password@FTPHostName:FTPHostPort/FTPPathTarget
soit :
'Serveur : '+Logn+':******@'+hnam+':%d' qui serait un ordre plus que judicieux pour ne pas perdre les utilisateurs.
et enfin, ne pas oublier l'utilisation de WITH ... DO pour eviter les gros pavé repetitif :
with JVScrollText1.Items do begin
Clear;
Add(co);
Add('licence : freeware');
Add('no com, gov or mil usage');
Add('');
Add('Host : '+host);
end;
JvScrollText1.Active:=true;
10 janv. 2007 à 15:59
10 janv. 2007 à 15:50
1)Ton soft s'inscrit dans les 15 clients FTP déjà posté sur CS, avec beaucoup de fonctionnalités en moins. De plus on ne peut pas meme pas choisir le fichier que l'on veut envoyer.
2)Sur la douzaine de commandes spécifiques au protocole FTP, ton source n'en reprend que deux.
3)Fichier Ini : on ne saisit ni le User ni le Password : on ne peut utiliser que celui par défaut. Ton fichier Ini ne sert à rien : tu pouvais utiliser cela directement
IdFTP1.Host:=
IdFTP1.Port:=
IdFTP1.Username:=
IdFTP1.Password:=
4)Sur DelphiFr on n'utlise pas le JVCL et on n'a pas le choix que de l'avoir, pour le compiler.
De ce fait cet source n'est pas compilable : du reste je n'ai pas pu le faire.
5)Si tu postes ici c'est pour etre soumis à la critique : si cela te gène, abstient toi de poster. C'est les règles du jeu.
10 janv. 2007 à 15:01
(A) doit envoyer régulièrement un/des fichiers à (B).
(B) distribue mon soft a (A) en configurant le .ini à ces propres parametres.
(A) ouvre mon soft et l'utilise sans se prendre la tete.
Meuh? est-ce claire ? :-)
10 janv. 2007 à 14:13
Travaillant actuellement sur le sujet, je te cache pas que je suis un peu décu :
*Non paramètrage du mot de passe : Il existe un composant Indy Super : le TidUserManager
De memoire
Procedure Add_User(AUsername,APassword : string);
Begin
With IdUserManager1.Accounts do
Add.Username:=AUsername;
Add.Password:=Password;
End;
L'avantage de ce composant c'est que tu peux gérer les droits suivant l'utilisateur.
Autre remarque : un client ou serveur FTP ne fait pas que transférer des fichies : on peut tout faire avec via la commande SendCmd(). Et oui pas besoin de TidTCP.
Ensuite pour télécharger ou envoyer un fichier sur un serveur il est primordiale d'avoir acces à l'arborescence du PC distant.
Ensuite quel dommage : des commandes simples, comme supprimer ou créer un répertoire, supprimer un fichier, renommer un fichier, récupérer un fichier ect ect ne sont pas présente. Pourtant c'est simple
Bon allez je suis sur que tu vas arranger tout cela ;)