FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 13:26

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 17 Nov 2017 - 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Lun 27 Mai 2013 - 2: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 - 9:23, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Lun 27 Mai 2013 - 2: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Lun 27 Mai 2013 - 9: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Sam 1 Juin 2013 - 22: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Lun 3 Juin 2013 - 2: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 3 Juin 2013 - 3: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Lun 3 Juin 2013 - 3:10

Je vais regarder ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: 2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory   Jeu 4 Juil 2013 - 12: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
2.38 du 27 mai 2013: nouvelle fonction GetActiveFTPDirectory
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouvelle interface Bbox, toujours rien ?
» La future gamme ideo du 26 août chez Bouygues Telecom ?
» La nouvelle Subaru WRX au Salon de Los Angeles 2013
» Nouvel An 2013
» Nouvelle mise a jour cartographique CN Europe 2013.10

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: