FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 27 Mai 2013 - 1:02

Nouvelle version:
KGF.dll V2.38 du 27/05/2013

Nouveauté:
nouvelle fonction GetActiveFTPDirectory

Moules modifiés;
KGF.dll
KGF_SUB.bas
KGF.chm, KGF.doc, KGF.pdf

La doc est à jour, ainsi que la distribution sur MyDrive et sur mon site FunPic, télé-chargeable par l'outil de mise à jour automatique.

Et voici le programme avec lequel je mets mon server FTP FunPic à jour;
Code:
' update_site_FTP.bas

labels()
constantes()
variables()
environnement()
form0()
ecran()



end

sub labels()
  label close0, connecter, deconnecter, sortir
  label sel_server, mod_server, del_server, new_server
  label sel_dir, upload, add_file, rem_file
end_sub

sub constantes()
  dim KGF$ : KGF$ = "KGF.dll"
  dim ini$ : ini$ = "update_site_FTP.ini"
end_sub

sub variables()
  dim dossier$, connecte%, home%
  dim no%, no1%, no2%, s$, i%, s1$, idx%, f%, n%
  dim no_server%, no_dir%, no_files%
end_sub

sub form0()
  full_space 0
  caption 0,"Update site FTP"
  on_close 0,close0
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Connecter" : on_click no%,connecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Déconnecter" : on_click no%,deconnecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir

end_sub

sub ecran()
  no% = no% + 1 : container no% : no_server% = no%
    top no%,10 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Site FTP"
  no% = no% + 1 : combo no% : parent no%,no_server%    : ' +1
    top no%,20 : left no%,100 : width no%, 200 : on_click no%,sel_server
  no% = no% + 1 : dlist no%                            : ' +2
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,50 : left no%,10 : caption no%,"Site FTP:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +4
    top no%,50 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,80 : left no%,10 : caption no%,"Identifiant:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +6
    top no%,80 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,110 : left no%,10 : caption no%,"Mot de passe:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +8
    top no%,110 : left no%,100 : width no%,200
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,100 : width no%,60
    caption no%,"MàJ" : on_click no%,mod_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,230 : width no%,30
    caption no%,"-" : on_click no%,del_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,270 : width no%,30
    caption no%,"+" : on_click no%,new_server
  load_server()
 
  no% = no% + 1 : container no% : no_dir% = no%
    top no%,200 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Dossiers:"
  no% = no% + 1 : list no% : parent no%,no_dir%      : ' +1
    top no%,20 : left no%,10 : width no%,380 : height no%,150
    on_click no%,sel_dir
  no% = no% + 1 : memo no% : hide no%                : ' +2

  no% = no% + 1 : container no% : no_files% = no%
    top no%,200 : left no%,510 : width no%,660 : height no%,180
    caption no%,"Fichiers:"
  no% = no% + 1 : list no% : parent no%,no_files%              : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
  no% = no% + 1 : open_dialog no%                              : ' +2
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_file
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_file

  no% = no% + 1 : button no% : top no%,230 : left no%,420
    caption no%,"<<<<<" : on_click no%,upload

end_sub

sub environnement()
  KGF_initialize(KGF$)
  dossier$ = dir_current$ + "\"
  if file_exists(dossier$+ini$)=0
    file_open_write 1,dossier$+ini$
    file_writeln 1,"MonSite,MonServeur,MonID,MonMotDePasse"
    file_close 1
  end_if
 
end_sub

sub load_server()
  file_open_read 1,dossier$+ini$
  while file_eof(1)=0
    file_readln 1,s$
    item_add no_server%+2,s$
    KGFDelimitedTextExtract(s$,",",1)
    item_add no_server%+1,KGFDelimitedTextExtract$
  end_while
  file_close 1
  idx% = 1
  SelectComboBoxItem(handle(no_server%+1),1)
  aff_server(item_read$(no_server%+2,item_index(no_server%+1)))
end_sub

sub aff_server(s$)
  KGFDelimitedTextExtract(s$,",",2)
  text no_server%+4,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",3)
  text no_server%+6,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",4)
  text no_server%+8,KGFDelimitedTextExtract$
end_sub

close0:
  if variable("KGF_res%")=1 then dll_off
  return
 
sel_server:
  idx% = item_index(no_server%+1)
  aff_server(item_read$(no_server%+2,idx%))
  return

mod_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  s1$ = text$(no_server%+1)
  item_delete no_server%+1,idx%
  item_delete no_server%+2,idx%
  item_insert no_server%+1,idx%,s1$
  item_insert no_server%+2,idx%,s$
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

del_server:
  if message_confirmation_yes_no("Voulez-vous vraiment supprimer le serveur "+text$(no_server%+4)+" ?")=1
    item_delete no_server%+1,idx%
    item_delete no_server%+2,idx%
    if count(no_server%+1)=0
      item_add no_server%+1,"MonSite"
      item_add no_server%+2,"MonSite,MonServeur,MonID,MonMotDePasse"
    end_if
    if idx%>count(no_server%+1) then idx% = count(no_server%+1)
    SelectComboBoxItem(handle(no_server%+1),idx%)
    aff_server(item_read$(no_server%+2,idx%))
    file_save no_server%+2,dossier$+ini$
  end_if
  return

new_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  item_add no_server%+1,text$(no_server%+1)
  item_add no_server%+2,s$
  idx% = count(no_server%+1)
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

connecter:
  if connecte%=1 then CloseFTP()
  IdentifyMyFTP(text$(no_server%+4),text$(no_server%+6),text$(no_server%+8))
  OpenFTP(0)
  load_folders()
  connecte% = 1
  return

sub load_folders()
  GetCurrentFolderFilesOnFTP(no_dir%+2)
  clear no_dir%+1
  home% = 0
  for i%=1 to count(no_dir%+2)
    s$ = item_read$(no_dir%+2,i%)
    f% = 1
    if (s$=".") or (s$="..")
      if s$="."
        s$ = ".."
      else
        f% = 0
      end_if
    else
      if mid$(s$,len(s$)-4,1)="." then f% = 0
      if mid$(s$,len(s$)-3,1)="." then f% = 0
      if mid$(s$,len(s$)-2,1)="." then f% = 0
    end_if
    if f%=1 then item_add no_dir%+1,s$
    if s$="index.html" then home% = 1
  next i%
  if home%=1 then item_delete no_dir%+1,1
end_sub

sel_dir:
  s1$ = item_index$(no_dir%+1)
  ChangeFTPFolder(s1$)
  load_folders()
  GetActiveFTPDirectory()
  if home%=1
    caption no_dir%,"Dossiers:"
  else
    caption no_dir%,"Dossiers: "+GetActiveFTPDirectory$
  end_if
  return

deconnecter:
  if connecte%=1
    CloseFTP()
    connecte% = 0
    clear no_dir%+1
    caption no_dir%,"Dossiers:"
  end_if
  return
 
sortir:
  if connecte%=1
    message "Attention ! Vous êtes encore connecté !"
    return
  end_if
  terminate
  return
 
upload:
  if connecte%=1
    if count(no_files%+1)>0
      n% = count(no_files%+1)
      for i%=1 to n%
        s$ = item_read$(no_files%+1,1)
        item_delete no_files%+1,1
        display
        UploadFileToFTP(s$,1)
      next i%
      message "fini."
    end_if
  end_if
  return
 
add_file:
  s$ = file_name$(no_files%+2)
  if s$<>"_" then item_add no_files%+1,s$
  return
 
rem_file:
  if item_index(no_files%+1)>0 then item_delete no_files%+1,item_index(no_files%+1)
  return

#INCLUDE "KGF_SUB.bas"

Ce programme permet de créer les coordonnées de plusieurs serveurs FTP . On en sélectionne un en cliquant dessus. Le menu permet de se connecter sur le serveur sélectionné, ou de se déconnecter. La liste de droite peut être remplie par des noms de fichiers à transmettre au serveur, via le bouton "+". Le bouton "<<<<<" envoie tous ces fichiers dans le dossier par défaut du serveur FTP . La liste de gauche donne les noms des sous-dossiers du dossier FTP par défaut. un simple clic sur un de ces dossiers le choisit comme dossier par défaut, etc.


Dernière édition par Klaus le Lun 27 Mai 2013 - 8:23, édité 3 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7002
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 27 Mai 2013 - 1:31

Salut Klaus
Sur ton Webdav, KGF.chm, KGF.doc et KGF.pdf sont ceux du 14/05/2013 et non du 27/05/2013.

REMARQUE:
Lorsqu'on écrit dans un message le mot FTP immédiatement suivi d'un point, ce dernier se transforme en lien, ce qui induira en erreur celui qui clique dessus.(Voir ton message)
Pour éviter ce désagrément, soit supprimer le point, soit mettre une espace entre FTP et le point.


Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 27 Mai 2013 - 8:01

Merci, Papydall ! Les deux points sont corrigés. Par la même occasion, j'ai corrigé une petite confusion de mot-clé dans la documentation de la nouvelle fonction.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptySam 1 Juin 2013 - 21:16

J'ai corrigé un petit bug dans mon programme update_site_FTP.pas:
Code:
' update_site_FTP.bas

labels()
constantes()
variables()
environnement()
form0()
ecran()



end

sub labels()
  label close0, connecter, deconnecter, sortir
  label sel_server, mod_server, del_server, new_server
  label sel_dir, upload, add_file, rem_file
end_sub

sub constantes()
  dim KGF$ : KGF$ = "KGF.dll"
  dim ini$ : ini$ = "update_site_FTP.ini"
end_sub

sub variables()
  dim dossier$, connecte%, home%
  dim no%, no1%, no2%, s$, i%, s1$, idx%, f%, n%
  dim no_server%, no_dir%, no_files%
end_sub

sub form0()
  full_space 0
  caption 0,"Update site FTP"
  on_close 0,close0
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Connecter" : on_click no%,connecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Déconnecter" : on_click no%,deconnecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir

end_sub

sub ecran()
  no% = no% + 1 : container no% : no_server% = no%
    top no%,10 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Site FTP"
  no% = no% + 1 : combo no% : parent no%,no_server%    : ' +1
    top no%,20 : left no%,100 : width no%, 200 : on_click no%,sel_server
  no% = no% + 1 : dlist no%                            : ' +2
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,50 : left no%,10 : caption no%,"Site FTP:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +4
    top no%,50 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,80 : left no%,10 : caption no%,"Identifiant:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +6
    top no%,80 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,110 : left no%,10 : caption no%,"Mot de passe:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +8
    top no%,110 : left no%,100 : width no%,200
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,100 : width no%,60
    caption no%,"MàJ" : on_click no%,mod_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,230 : width no%,30
    caption no%,"-" : on_click no%,del_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,270 : width no%,30
    caption no%,"+" : on_click no%,new_server
  load_server()
 
  no% = no% + 1 : container no% : no_dir% = no%
    top no%,200 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Dossiers:"
  no% = no% + 1 : list no% : parent no%,no_dir%      : ' +1
    top no%,20 : left no%,10 : width no%,380 : height no%,150
    on_click no%,sel_dir
  no% = no% + 1 : memo no% : hide no%                : ' +2

  no% = no% + 1 : container no% : no_files% = no%
    top no%,200 : left no%,510 : width no%,660 : height no%,180
    caption no%,"Fichiers:"
  no% = no% + 1 : list no% : parent no%,no_files%              : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
  no% = no% + 1 : open_dialog no%                              : ' +2
  no% = no% + 1 : memo no% : hide no% : width no%,1000          : ' +3
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_file
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_file

  no% = no% + 1 : button no% : top no%,230 : left no%,420
    caption no%,"<<<<<" : on_click no%,upload

end_sub

sub environnement()
  KGF_initialize(KGF$)
  dossier$ = dir_current$ + "\"
  if file_exists(dossier$+ini$)=0
    file_open_write 1,dossier$+ini$
    file_writeln 1,"MonSite,MonServeur,MonID,MonMotDePasse"
    file_close 1
  end_if
 
end_sub

sub load_server()
  file_open_read 1,dossier$+ini$
  while file_eof(1)=0
    file_readln 1,s$
    item_add no_server%+2,s$
    KGFDelimitedTextExtract(s$,",",1)
    item_add no_server%+1,KGFDelimitedTextExtract$
  end_while
  file_close 1
  idx% = 1
  SelectComboBoxItem(handle(no_server%+1),1)
  aff_server(item_read$(no_server%+2,item_index(no_server%+1)))
end_sub

sub aff_server(s$)
  KGFDelimitedTextExtract(s$,",",2)
  text no_server%+4,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",3)
  text no_server%+6,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",4)
  text no_server%+8,KGFDelimitedTextExtract$
end_sub

close0:
  if variable("KGF_res%")=1 then dll_off
  return
 
sel_server:
  idx% = item_index(no_server%+1)
  aff_server(item_read$(no_server%+2,idx%))
  return

mod_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  s1$ = text$(no_server%+1)
  item_delete no_server%+1,idx%
  item_delete no_server%+2,idx%
  item_insert no_server%+1,idx%,s1$
  item_insert no_server%+2,idx%,s$
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

del_server:
  if message_confirmation_yes_no("Voulez-vous vraiment supprimer le serveur "+text$(no_server%+4)+" ?")=1
    item_delete no_server%+1,idx%
    item_delete no_server%+2,idx%
    if count(no_server%+1)=0
      item_add no_server%+1,"MonSite"
      item_add no_server%+2,"MonSite,MonServeur,MonID,MonMotDePasse"
    end_if
    if idx%>count(no_server%+1) then idx% = count(no_server%+1)
    SelectComboBoxItem(handle(no_server%+1),idx%)
    aff_server(item_read$(no_server%+2,idx%))
    file_save no_server%+2,dossier$+ini$
  end_if
  return

new_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  item_add no_server%+1,text$(no_server%+1)
  item_add no_server%+2,s$
  idx% = count(no_server%+1)
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

connecter:
  if connecte%=1 then CloseFTP()
  IdentifyMyFTP(text$(no_server%+4),text$(no_server%+6),text$(no_server%+8))
  OpenFTP(0)
  load_folders()
  connecte% = 1
  return

sub load_folders()
  GetCurrentFolderFilesOnFTP(no_dir%+2)
  clear no_dir%+1
  home% = 0
  for i%=1 to count(no_dir%+2)
    s$ = item_read$(no_dir%+2,i%)
    f% = 1
    if (s$=".") or (s$="..")
      if s$="."
        s$ = ".."
      else
        f% = 0
      end_if
    else
      if len(s$)>4
        if mid$(s$,len(s$)-4,1)="." then f% = 0
      end_if
      if len(s$)>3
        if mid$(s$,len(s$)-3,1)="." then f% = 0
      end_if
      if len(s$)>2
        if mid$(s$,len(s$)-2,1)="." then f% = 0
      end_if
    end_if
    if f%=1 then item_add no_dir%+1,s$
    if s$="index.html" then home% = 1
  next i%
  if home%=1 then item_delete no_dir%+1,1
end_sub

sel_dir:
  s1$ = item_index$(no_dir%+1)
  ChangeFTPFolder(s1$)
  load_folders()
  GetActiveFTPDirectory()
  if home%=1
    caption no_dir%,"Dossiers:"
  else
    caption no_dir%,"Dossiers: "+GetActiveFTPDirectory$
  end_if
  return

deconnecter:
  if connecte%=1
    CloseFTP()
    connecte% = 0
    clear no_dir%+1
    caption no_dir%,"Dossiers:"
  end_if
  return
 
sortir:
  if connecte%=1
    message "Attention ! Vous êtes encore connecté !"
    return
  end_if
  terminate
  return
 
upload:
  if connecte%=1
    if count(no_files%+1)>0
      n% = count(no_files%+1)
      for i%=1 to n%
        s$ = item_read$(no_files%+1,1)
        item_delete no_files%+1,1
        display
        UploadFileToFTP(s$,1)
      next i%
      message "fini."
    end_if
  end_if
  return
 
add_file:
  SelectFileToOpen("","",no_files%+3)
  if SelectFileToOpen=1
    for i%=1 to count(no_files%+3)
      item_add no_files%+1,item_read$(no_files%+3,i%)
    next i%
  end_if
  return
 
rem_file:
  if item_index(no_files%+1)>0 then item_delete no_files%+1,item_index(no_files%+1)
  return

#INCLUDE "KGF_SUB.bas"

EDIT

Je rappelle le mode d'emploi du programme:
- au premier démarrage, in fichier de configuration est créé contenant un server FTP fictif.
- il suffit de remplacer les valeurs bidons du serveur fictif par les vraies valeurs, puis cliquer sur "MaJ". Le serveur est alors accessible.
- on peur ajouter autant de serveurs (sites) que nécessaire. Il suffit de saisir les valeurs dans les champs, puis cliquer sur "+".
- on sélectionne un serveur particulier par la combo en haut du cadre. Ses informations s'affichent (et peuvent être modifiées via le mouton "MaJ").
- note importante: le premier des 4 champs est un identifiant qui sera ajouté à la combo pour pouvoir sélectionner un serveur. Ce champ n'est jamais transmis au serveur FTP . Mais: ce code ne doit contenir NI espaces NI caractères spéciaux - uniquement lettres et chiffres !
- Le menu du programme contient 3 fonctions: connexion, déconnexion et sortie. La fonction "Connexion" utilise les paramètres du serveur sélectionné et dont les coordonnées sont affichées, pour se connecter au serveur.
- La liste de droite contient des noms et chemins de fichiers à envoyer au serveur. On la charge par le bouton "+" du cadre des fichiers. Important: le sélecteur de fichiers qui s'ouvre, contrairement à celui de Panoramic ouvert par file_name$(), permet la multi-sélection en utilisant les touches control et/ou shift, comme dans l'explorateur de fichier Windows !

- Un clic sur le bouton "<<<<" envoie tous les fichiers de la liste vers le serveur (si la connexion est faite). La liste se vide au fur et à mesure, et à la fin, un message "fini" est affiché. On peut alors utiliser la fonction "Deconnexion"
- lors de la connexion, le programme affiche la liste des dossiers présents à la racine du serveur.
- un simple clic sur un des dossiers affichés ouvre ce dossier et affiche éventuellement les sous-dossiers présents, etc.
- une ligne ".." représente un lien vers le dossier parent du dossier actuel. Un simple clic sur ce code retourne au dossier parent
- le dossier ouvert est systématiquement affiché dans le titre du cadre "Dossiers:"
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 3 Juin 2013 - 1:47

Nouvelle version de mon programme Update_site_FTP.bas.

Il y a maintenant le sens inverse: télécharger une sélection de fichiers du serveur FTP vers un dossier du site local.

Pour cela, il y a un second rang de cadres:
- à gauche, la liste des fichiers du dossier sélectionné sur le serveur FTP. Chaque nom de fichier est précédé de crochets "[ ]" ce qui signifie que le fichier n'est pas sélectionné pour télé-chargement. Un clic sue le bouton "*" sélectionne tous les fichiers (la marque devient "[*]"). Un clic sur le bouton "+" sélectionne un fichier indiciduel, et le bouton "-" dé-sélectionne un fichier individuel.
- à droite, il y a un cadre avec le dossier de destination du télé-chargement. On ne peut pas le saisir directement, mais il faut utiliser le bouton "Changer" pour choisir le dossier. Attention: ce dialog permet même de créer un nouveau dossier, en modifiant le nom proposé dans le champ de saisie du dialogue.

Un clic sur le bouton ">>>>>" télé-charge la sélection de fichiers dans le dossier choisi. Au fur et à mesure, les fichiers télé-chargés sont dé-sélectionnés. A la fin, un message "fini" est affiché.

Voici le source:
Code:
' update_site_FTP.bas

labels()
constantes()
variables()
environnement()
form0()
ecran()



end

sub labels()
  label close0, connecter, deconnecter, sortir
  label sel_server, mod_server, del_server, new_server
  label sel_dir, upload, add_file, rem_file
  label all_FTP_files, add_FTP_file, rem_FTP_file
  label download, changer_dest
end_sub

sub constantes()
  dim KGF$ : KGF$ = "KGF.dll"
  dim ini$ : ini$ = "update_site_FTP.ini"
end_sub

sub variables()
  dim dossier$, connecte%, home%
  dim no%, no1%, no2%, s$, i%, s1$, idx%, f%, n%
  dim no_server%, no_dir%, no_files%, no_FTP%, no_dest%
end_sub

sub form0()
  full_space 0
  caption 0,"Update site FTP"
  on_close 0,close0
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Connecter" : on_click no%,connecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Déconnecter" : on_click no%,deconnecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir

end_sub

sub ecran()
  no% = no% + 1 : container no% : no_server% = no%
    top no%,10 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Site FTP"
  no% = no% + 1 : combo no% : parent no%,no_server%    : ' +1
    top no%,20 : left no%,100 : width no%, 200 : on_click no%,sel_server
  no% = no% + 1 : dlist no%                            : ' +2
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,50 : left no%,10 : caption no%,"Site FTP:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +4
    top no%,50 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,80 : left no%,10 : caption no%,"Identifiant:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +6
    top no%,80 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,110 : left no%,10 : caption no%,"Mot de passe:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +8
    top no%,110 : left no%,100 : width no%,200
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,100 : width no%,60
    caption no%,"MàJ" : on_click no%,mod_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,230 : width no%,30
    caption no%,"-" : on_click no%,del_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,270 : width no%,30
    caption no%,"+" : on_click no%,new_server
  load_server()
 
  no% = no% + 1 : container no% : no_dir% = no%
    top no%,200 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Dossiers:"
  no% = no% + 1 : list no% : parent no%,no_dir%      : ' +1
    top no%,20 : left no%,10 : width no%,380 : height no%,150
    on_click no%,sel_dir
  no% = no% + 1 : memo no% : hide no%                : ' +2

  no% = no% + 1 : container no% : no_files% = no%
    top no%,200 : left no%,510 : width no%,660 : height no%,180
    caption no%,"Fichiers locaux:"
  no% = no% + 1 : list no% : parent no%,no_files%              : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
  no% = no% + 1 : open_dialog no%                              : ' +2
  no% = no% + 1 : memo no% : hide no% : width no%,1000          : ' +3
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_file
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_file

  no% = no% + 1 : button no% : top no%,230 : left no%,420
    caption no%,"<<<<<" : on_click no%,upload

  no% = no% + 1 : container no% : no_FTP% = no%
    top no%,390 : left no%,10 : width no%,660 : height no%,180
    caption no%,"Fichiers FTP:"
  no% = no% + 1 : list no% : parent no%,no_FTP% : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
    font_name no%,"Courier"
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"*" : on_click no%,all_FTP_files
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_FTP_file
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,100 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_FTP_file

  no% = no% + 1 : button no% : top no%,430 : left no%,680
    caption no%,">>>>>" : on_click no%,download

  no% = no% + 1 : container no% : no_dest% = no%
    top no%,390 : left no%,770 : width no%,400 : height no%,180
    caption no%,"Dossier local:"
  no% = no% + 1 : list no% : parent no%,no_dest% : ' +1
    top no%,40 : left no%,10 : width no%,380 : height no%,25
  no% = no% + 1 : button no% : parent no%,no_dest%
    top no%,70 : left no%,150
    caption no%,"Changer" : on_click no%,changer_dest


end_sub

sub environnement()
  KGF_initialize(KGF$)
  dossier$ = dir_current$ + "\"
  if file_exists(dossier$+ini$)=0
    file_open_write 1,dossier$+ini$
    file_writeln 1,"MonSite,MonServeur,MonID,MonMotDePasse"
    file_close 1
  end_if
 
end_sub

sub load_server()
  file_open_read 1,dossier$+ini$
  while file_eof(1)=0
    file_readln 1,s$
    item_add no_server%+2,s$
    KGFDelimitedTextExtract(s$,",",1)
    item_add no_server%+1,KGFDelimitedTextExtract$
  end_while
  file_close 1
  idx% = 1
  SelectComboBoxItem(handle(no_server%+1),1)
  aff_server(item_read$(no_server%+2,item_index(no_server%+1)))
end_sub

sub aff_server(s$)
  KGFDelimitedTextExtract(s$,",",2)
  text no_server%+4,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",3)
  text no_server%+6,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",4)
  text no_server%+8,KGFDelimitedTextExtract$
end_sub

close0:
  if variable("KGF_res%")=1 then dll_off
  return
 
sel_server:
  idx% = item_index(no_server%+1)
  aff_server(item_read$(no_server%+2,idx%))
  return

mod_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  s1$ = text$(no_server%+1)
  item_delete no_server%+1,idx%
  item_delete no_server%+2,idx%
  item_insert no_server%+1,idx%,s1$
  item_insert no_server%+2,idx%,s$
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

del_server:
  if message_confirmation_yes_no("Voulez-vous vraiment supprimer le serveur "+text$(no_server%+4)+" ?")=1
    item_delete no_server%+1,idx%
    item_delete no_server%+2,idx%
    if count(no_server%+1)=0
      item_add no_server%+1,"MonSite"
      item_add no_server%+2,"MonSite,MonServeur,MonID,MonMotDePasse"
    end_if
    if idx%>count(no_server%+1) then idx% = count(no_server%+1)
    SelectComboBoxItem(handle(no_server%+1),idx%)
    aff_server(item_read$(no_server%+2,idx%))
    file_save no_server%+2,dossier$+ini$
  end_if
  return

new_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  item_add no_server%+1,text$(no_server%+1)
  item_add no_server%+2,s$
  idx% = count(no_server%+1)
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

connecter:
  if connecte%=1 then CloseFTP()
  IdentifyMyFTP(text$(no_server%+4),text$(no_server%+6),text$(no_server%+8))
  OpenFTP(0)
  load_folders()
  connecte% = 1
  return

sub load_folders()
  GetCurrentFolderFilesOnFTP(no_dir%+2)
  clear no_dir%+1
  clear no_FTP%+1
  home% = 0
  item_add no_dir%+1,".."
  for i%=1 to count(no_dir%+2)
    s$ = item_read$(no_dir%+2,i%)
    f% = 1
    if left$(s$,1)="."
      f% = 0
    else
      if len(s$)>4
        if mid$(s$,len(s$)-4,1)="." then f% = 0
      end_if
      if len(s$)>3
        if mid$(s$,len(s$)-3,1)="." then f% = 0
      end_if
      if len(s$)>2
        if mid$(s$,len(s$)-2,1)="." then f% = 0
      end_if
    end_if
    if f%=1
      item_add no_dir%+1,s$
    else
      if left$(s$,1)<>"." then item_add no_FTP%+1,"[ ] "+s$
    end_if
    if s$="index.html" then home% = 1
  next i%
  if home%=1 then item_delete no_dir%+1,1
end_sub

sel_dir:
  s1$ = item_index$(no_dir%+1)
  ChangeFTPFolder(s1$)
  load_folders()
  GetActiveFTPDirectory()
  if home%=1
    caption no_dir%,"Dossiers:"
  else
    caption no_dir%,"Dossiers: "+GetActiveFTPDirectory$
  end_if
  return

deconnecter:
  if connecte%=1
    CloseFTP()
    connecte% = 0
    clear no_dir%+1
    clear no_FTP%+1
    caption no_dir%,"Dossiers:"
  end_if
  return
 
sortir:
  if connecte%=1
    message "Attention ! Vous êtes encore connecté !"
    return
  end_if
  terminate
  return
 
upload:
  if connecte%=1
    if count(no_files%+1)>0
      n% = count(no_files%+1)
      for i%=1 to n%
        s$ = item_read$(no_files%+1,1)
        item_delete no_files%+1,1
        display
        UploadFileToFTP(s$,1)
      next i%
      message "fini."
    end_if
  end_if
  return
 
add_file:
  SelectFileToOpen("","",no_files%+3)
  if SelectFileToOpen=1
    for i%=1 to count(no_files%+3)
      item_add no_files%+1,item_read$(no_files%+3,i%)
    next i%
  end_if
  return
 
rem_file:
  if item_index(no_files%+1)>0 then item_delete no_files%+1,item_index(no_files%+1)
  return

all_FTP_files:
  if count(no_FTP%+1)=0 then return
  for i%=1 to count(no_FTP%+1)
    s$ = item_read$(no_FTP%+1,i%)
    if mid$(s$,5,2)<>".."
      item_delete no_FTP%+1,i%
      item_insert no_FTP%+1,i%,"[*] "+mid$(s$,5,len(s$))
    end_if
  next i%
  return

add_FTP_file:
  if count(no_FTP%+1)=0 then return
  i% = item_index(no_FTP%+1)
  if i%=0 then return
  s$ = item_read$(no_FTP%+1,i%)
  if mid$(s$,5,2)<>".."
    item_delete no_FTP%+1,i%
    item_insert no_FTP%+1,i%,"[*] "+mid$(s$,5,len(s$))
  end_if
  return

rem_FTP_file:
  if count(no_FTP%+1)=0 then return
  i% = item_index(no_FTP%+1)
  if i%=0 then return
  s$ = item_read$(no_FTP%+1,i%)
  if mid$(s$,5,2)<>".."
    item_delete no_FTP%+1,i%
    item_insert no_FTP%+1,i%,"[ ] "+mid$(s$,5,len(s$))
  end_if
  return

download:
  if count(no_FTP%+1)=0 then return
  s1$ = item_read$(no_dest%+1,1)
  if s1$="" then return
  s1$ = s1$ + "\"
  for i%=1 to count(no_FTP%+1)
    s$ = item_read$(no_FTP%+1,i%)
    if left$(s$,3)="[*]"
      s$ = mid$(s$,5,len(s$))
      if s$<>".."
        DownloadFileFromFTP(s$,s1$+s$,1)
        item_delete no_FTP%+1,i%
        item_insert no_FTP%+1,i%,"[ ] "+s$
      end_if
    end_if
  next i%
  message "fini"
  return

changer_dest:
  FolderSelect(dossier$,1)
  if FolderSelect=1
    clear no_dest%+1
    item_add no_dest%+1,FolderSelect$
  end_if
  return

#INCLUDE "KGF_SUB.bas"

Pour ma part, j'ai généré un EXE à partir de ce source et je place un raccourci sur le bureau. Cela me permet de gérer tous les sites FTP.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: re   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 3 Juin 2013 - 2:04

Il ne te manque plus qu'une fonction qui compare le fichier serveur avec le fichier disque.
Sur certain serveur, tu ne peux pas remplacer un fichier si il n' a pas été effacer avant.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyLun 3 Juin 2013 - 2:10

Je vais regarder ça.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12289
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory EmptyJeu 4 Juil 2013 - 11:09

Version à jour de mon programme Update_Site_FTP.bas:
Code:
' update_site_FTP.bas

labels()
constantes()
variables()
environnement()
form0()
ecran()



end

sub labels()
  label close0, connecter, deconnecter, sortir
  label sel_server, mod_server, del_server, new_server
  label sel_dir, upload, add_file, rem_file
  label all_FTP_files, add_FTP_file, rem_FTP_file
  label download, changer_dest
end_sub

sub constantes()
  dim KGF$ : KGF$ = "KGF.dll"
  dim ini$ : ini$ = "update_site_FTP.ini"
end_sub

sub variables()
  dim dossier$, connecte%, home%
  dim no%, no1%, no2%, s$, i%, s1$, idx%, f%, n%
  dim no_server%, no_dir%, no_files%, no_FTP%, no_dest%
end_sub

sub form0()
  full_space 0
  caption 0,"Update site FTP"
  on_close 0,close0
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Connecter" : on_click no%,connecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Déconnecter" : on_click no%,deconnecter
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir

end_sub

sub ecran()
  no% = no% + 1 : container no% : no_server% = no%
    top no%,10 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Site FTP"
  no% = no% + 1 : combo no% : parent no%,no_server%    : ' +1
    top no%,20 : left no%,100 : width no%, 200 : on_click no%,sel_server
  no% = no% + 1 : dlist no%                            : ' +2
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,50 : left no%,10 : caption no%,"Site FTP:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +4
    top no%,50 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,80 : left no%,10 : caption no%,"Identifiant:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +6
    top no%,80 : left no%,100 : width no%,200
  no% = no% + 1 : alpha no% : parent no%,no_server%
    top no%,110 : left no%,10 : caption no%,"Mot de passe:"
  no% = no% + 1 : edit no% : parent no%,no_server%    : ' +8
    top no%,110 : left no%,100 : width no%,200
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,100 : width no%,60
    caption no%,"MàJ" : on_click no%,mod_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,230 : width no%,30
    caption no%,"-" : on_click no%,del_server
  no% = no% + 1 : button no% : parent no%,no_server%
    top no%,140 : left no%,270 : width no%,30
    caption no%,"+" : on_click no%,new_server
  load_server()
 
  no% = no% + 1 : container no% : no_dir% = no%
    top no%,200 : left no%,10 : width no%,400 : height no%,180
    caption no%,"Dossiers:"
  no% = no% + 1 : list no% : parent no%,no_dir%      : ' +1
    top no%,20 : left no%,10 : width no%,380 : height no%,150
    on_click no%,sel_dir
  no% = no% + 1 : memo no% : hide no%                : ' +2

  no% = no% + 1 : container no% : no_files% = no%
    top no%,200 : left no%,510 : width no%,660 : height no%,180
    caption no%,"Fichiers locaux:"
  no% = no% + 1 : list no% : parent no%,no_files%              : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
  no% = no% + 1 : open_dialog no%                              : ' +2
  no% = no% + 1 : memo no% : hide no% : width no%,1000          : ' +3
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_file
  no% = no% + 1 : button no% : parent no%,no_files%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_file

  no% = no% + 1 : button no% : top no%,230 : left no%,420
    caption no%,"<<<<<" : on_click no%,upload

  no% = no% + 1 : container no% : no_FTP% = no%
    top no%,390 : left no%,10 : width no%,660 : height no%,180
    caption no%,"Fichiers FTP:"
  no% = no% + 1 : list no% : parent no%,no_FTP% : ' +1
    top no%,20 : left no%,10 : width no%,600 : height no%,150
    font_name no%,"Courier"
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,20 : left no%,620 : width no%,30
    caption no%,"*" : on_click no%,all_FTP_files
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,60 : left no%,620 : width no%,30
    caption no%,"+" : on_click no%,add_FTP_file
  no% = no% + 1 : button no% : parent no%,no_FTP%
    top no%,100 : left no%,620 : width no%,30
    caption no%,"-" : on_click no%,rem_FTP_file

  no% = no% + 1 : button no% : top no%,430 : left no%,680
    caption no%,">>>>>" : on_click no%,download

  no% = no% + 1 : container no% : no_dest% = no%
    top no%,390 : left no%,770 : width no%,400 : height no%,180
    caption no%,"Dossier local:"
  no% = no% + 1 : list no% : parent no%,no_dest% : ' +1
    top no%,40 : left no%,10 : width no%,380 : height no%,25
  no% = no% + 1 : button no% : parent no%,no_dest%
    top no%,70 : left no%,150
    caption no%,"Changer" : on_click no%,changer_dest


end_sub

sub environnement()
  KGF_initialize(KGF$)
  dossier$ = dir_current$ + "\"
  if file_exists(dossier$+ini$)=0
    file_open_write 1,dossier$+ini$
    file_writeln 1,"MonSite,MonServeur,MonID,MonMotDePasse"
    file_close 1
  end_if
 
end_sub

sub load_server()
  file_open_read 1,dossier$+ini$
  while file_eof(1)=0
    file_readln 1,s$
    item_add no_server%+2,s$
    KGFDelimitedTextExtract(s$,",",1)
    item_add no_server%+1,KGFDelimitedTextExtract$
  end_while
  file_close 1
  idx% = 1
  SelectComboBoxItem(handle(no_server%+1),1)
  aff_server(item_read$(no_server%+2,item_index(no_server%+1)))
end_sub

sub aff_server(s$)
  KGFDelimitedTextExtract(s$,",",2)
  text no_server%+4,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",3)
  text no_server%+6,KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",4)
  text no_server%+8,KGFDelimitedTextExtract$
end_sub

close0:
  if variable("KGF_res%")=1 then dll_off
  return
 
sel_server:
  idx% = item_index(no_server%+1)
  aff_server(item_read$(no_server%+2,idx%))
  return

mod_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  s1$ = text$(no_server%+1)
  item_delete no_server%+1,idx%
  item_delete no_server%+2,idx%
  item_insert no_server%+1,idx%,s1$
  item_insert no_server%+2,idx%,s$
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

del_server:
  if message_confirmation_yes_no("Voulez-vous vraiment supprimer le serveur "+text$(no_server%+4)+" ?")=1
    item_delete no_server%+1,idx%
    item_delete no_server%+2,idx%
    if count(no_server%+1)=0
      item_add no_server%+1,"MonSite"
      item_add no_server%+2,"MonSite,MonServeur,MonID,MonMotDePasse"
    end_if
    if idx%>count(no_server%+1) then idx% = count(no_server%+1)
    SelectComboBoxItem(handle(no_server%+1),idx%)
    aff_server(item_read$(no_server%+2,idx%))
    file_save no_server%+2,dossier$+ini$
  end_if
  return

new_server:
  s$ = text$(no_server%+1)+","+text$(no_server%+4)+","+text$(no_server%+6)+","+text$(no_server%+8)
  item_add no_server%+1,text$(no_server%+1)
  item_add no_server%+2,s$
  idx% = count(no_server%+1)
  SelectComboBoxItem(handle(no_server%+1),idx%)
  aff_server(item_read$(no_server%+2,idx%))
  file_save no_server%+2,dossier$+ini$
  return

connecter:
  if connecte%=1 then CloseFTP()
  IdentifyMyFTP(text$(no_server%+4),text$(no_server%+6),text$(no_server%+8))
  OpenFTP(0)
  load_folders()
  connecte% = 1
  return

sub load_folders()
  GetCurrentFolderFilesOnFTP(no_dir%+2)
  clear no_dir%+1
  clear no_FTP%+1
  home% = 0
  item_add no_dir%+1,".."
  for i%=1 to count(no_dir%+2)
    s$ = item_read$(no_dir%+2,i%)
    f% = 1
    if left$(s$,1)="."
      f% = 0
    else
      if len(s$)>4
        if mid$(s$,len(s$)-4,1)="." then f% = 0
      end_if
      if len(s$)>3
        if mid$(s$,len(s$)-3,1)="." then f% = 0
      end_if
      if len(s$)>2
        if mid$(s$,len(s$)-2,1)="." then f% = 0
      end_if
    end_if
    if f%=1
      item_add no_dir%+1,s$
    else
      if left$(s$,1)<>"." then item_add no_FTP%+1,"[ ] "+s$
    end_if
    if s$="index.html" then home% = 1
  next i%
  if home%=1 then item_delete no_dir%+1,1
end_sub

sel_dir:
  s1$ = item_index$(no_dir%+1)
  ChangeFTPFolder(s1$)
  load_folders()
  GetActiveFTPDirectory()
  if home%=1
    caption no_dir%,"Dossiers:"
  else
    caption no_dir%,"Dossiers: "+GetActiveFTPDirectory$
  end_if
  return

deconnecter:
  if connecte%=1
    CloseFTP()
    connecte% = 0
    clear no_dir%+1
    clear no_FTP%+1
    caption no_dir%,"Dossiers:"
  end_if
  return
 
sortir:
  if connecte%=1
    message "Attention ! Vous êtes encore connecté !"
    return
  end_if
  terminate
  return
 
upload:
  if connecte%=1
    if count(no_files%+1)>0
      n% = count(no_files%+1)
      for i%=1 to n%
        s$ = item_read$(no_files%+1,1)
        item_delete no_files%+1,1
        display
        UploadFileToFTP(s$,1)
      next i%
      message "fini."
    end_if
  end_if
  return
 
add_file:
  SelectFileToOpen("","",no_files%+3)
  if SelectFileToOpen=1
    for i%=1 to count(no_files%+3)
      item_add no_files%+1,item_read$(no_files%+3,i%)
    next i%
  end_if
  return
 
rem_file:
  if item_index(no_files%+1)>0 then item_delete no_files%+1,item_index(no_files%+1)
  return

all_FTP_files:
  if count(no_FTP%+1)=0 then return
  for i%=1 to count(no_FTP%+1)
    s$ = item_read$(no_FTP%+1,i%)
    if mid$(s$,5,2)<>".."
      item_delete no_FTP%+1,i%
      item_insert no_FTP%+1,i%,"[*] "+mid$(s$,5,len(s$))
    end_if
  next i%
  return

add_FTP_file:
  if count(no_FTP%+1)=0 then return
  i% = item_index(no_FTP%+1)
  if i%=0 then return
  s$ = item_read$(no_FTP%+1,i%)
  if mid$(s$,5,2)<>".."
    item_delete no_FTP%+1,i%
    item_insert no_FTP%+1,i%,"[*] "+mid$(s$,5,len(s$))
  end_if
  return

rem_FTP_file:
  if count(no_FTP%+1)=0 then return
  i% = item_index(no_FTP%+1)
  if i%=0 then return
  s$ = item_read$(no_FTP%+1,i%)
  if mid$(s$,5,2)<>".."
    item_delete no_FTP%+1,i%
    item_insert no_FTP%+1,i%,"[ ] "+mid$(s$,5,len(s$))
  end_if
  return

download:
  if count(no_FTP%+1)=0 then return
  s1$ = item_read$(no_dest%+1,1)
  if s1$="" then return
  s1$ = s1$ + "\"
  for i%=1 to count(no_FTP%+1)
    s$ = item_read$(no_FTP%+1,i%)
    if left$(s$,3)="[*]"
      s$ = mid$(s$,5,len(s$))
      if s$<>".."
        DownloadFileFromFTP(s$,s1$+s$,1)
        item_delete no_FTP%+1,i%
        item_insert no_FTP%+1,i%,"[ ] "+s$
      end_if
    end_if
  next i%
  message "fini"
  return

changer_dest:
  FolderSelect(dossier$,1)
  if FolderSelect=1
    clear no_dest%+1
    item_add no_dest%+1,FolderSelect$
  end_if
  return

#INCLUDE "KGF_SUB.bas"


C'est un client FTP bi-directionnel, avec la possibilité de gérer plusieurs sites FTP et d'en choisir un pour la connexion.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty
MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory Empty

Revenir en haut Aller en bas
 
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» V2.51 du 11/11/2013 - nouvelle fonction GetClipboardFormat
» 2.09 du 1er Avril 2013 - nouvelle fonction SetClickLinkRect
» V2.54 du 18/11/2013: nouvelle fonction SendSingleKey
» V2.55 du 23/11/2013: nouvelle fonctions Toolbar
» 2.28 du 1er mai 2013: nouvelle fonction TorturePicture

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: