IndyFTP et LAN

emtec2hd Messages postés 49 Date d'inscription dimanche 11 septembre 2005 Statut Membre Dernière intervention 13 février 2008 - 6 févr. 2008 à 14:00
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 6 févr. 2008 à 18:00
Bonjour,

voila je me pose une question tres simple, j'ai un programme qui se lance au demarrage et envoie aussi tot un fichier vers un serveur par ftp, le code pour l'envoi du fichier se trouvent dans ma procédure form1.create().
Mais voila, mon pc étant sur un LAN au moment ou le programme se lance, la connection internet n'est pas encore présente et l'envoie échoue.
Donc, j'ai rajouté sleep (300000); //300 sec juste avant l'envoi du fichier, ce qui marche pas trop mal, mais ce que je voudrait c'est ne pas avoir a utiliser la fonction sleep, mais que parcontre, Indy essaye de se connecter, et retente jusqu'a ce que la connection soit presente.
J'imagine qu'il me faut utiliser un while mais je ne vois pas comment,
Sur internet je n'ai jamais vu autrechose que le code suivant 'if ftp.Connected then ftp.Disconnect;'

Avez vous un exemple de code?

Merci d'avance

4 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
6 févr. 2008 à 15:58
essaie plutôt un :

repeat
....
....
until condition à satisfaire pour sortir

cantador
0
emtec2hd Messages postés 49 Date d'inscription dimanche 11 septembre 2005 Statut Membre Dernière intervention 13 février 2008
6 févr. 2008 à 16:12
a merci, je vais essayer tout de suite :)
0
emtec2hd Messages postés 49 Date d'inscription dimanche 11 septembre 2005 Statut Membre Dernière intervention 13 février 2008
6 févr. 2008 à 17:33
Super, ca marche tres bien, voici le code pour ceux que ça peut dépanner

repeat
  begin
  try
  ftp.Host:='xxxxx';
  ftp.Username:='xxxxx';
  ftp.Password:='xxxxx';
  ftp.Port := 21;
  ftp.Passive := True;
  ftp.Connect;
  ftp.Put('C:\chemin_complet_du_fichier_local\.txt',DateTimeToStr(Now)+'.txt',true);
  ftp.Disconnect;
  connect := true;
  ShowMessage('file uploaded!');
  except
     on E : Exception do
     begin
       //ShowMessage('ftp upload failed!!!');
     end;
  end;

  end;
until connect = true;

ne pas oublier d'initialiser la variable connect juste avant 'implementation' :
var
connect : Boolean;

voila, donc merci Cantador :)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
6 févr. 2008 à 18:00
..de rien.

cantador
0
Rejoignez-nous