Page 1 sur 1

[..] Savoir ci un fichier a été mis a jour sur ftp

Posté : lun. 16 août 2010 20:49
par robin25
Bonjours tout le monde, voila j 'ai crée un logiciel FTP ai j'aurais aimer savoir ci il était possible de savoir en temps réel si un fichier sur mon serveur a été modifier ? Par exemple j'ai un fichier sur mon serveur FTP, un fichier txt et j'aimerais moi qui suis l'administrateur que lorsque se fichier texte est modifie recevoir sur mon pc un pop up ou il serait écrit que le fichier a été modifier? Vous n'avez pas une idée par hasard?

J'avais déjà quelques pistes pour réaliser cette fonction, j'avais penser par exemple regarde la taile du fichier grâce a la fonction FTP_FileGetSize et ci la taille du fichier augmente ou diminue alors c'est que le fichier a été modifier non ? Mais j'ai quelque dificulters a mettre en place cette fonction quelqu'un a-t-il une solution?

Sinon je voulais demander ci il n'existait pas un moyen de savoir combien compte de ligne le fichier sur mon serveur FTP ?

Et pour finir j'ai une question qui me revient en écrivant ce post, dans mon logiciel j'affiche le fichier text de mon serveur ftp, mais j'ai un probleme, lorsque je clique sur le bouton tout s'affiche correctement dans une nouvelle fenêtre mais lorsque je ferme la nouvelle fenêtre c'est tout mon logiciel qui se ferme, j ai poster le code en dessous :

Code : Tout sélectionner

Case $Button2 ;Afficher le txt


            $pre = _FTP_FileOpen($Connect, $Current & $Dir)

            $Size = 1000000
            $HEX = _FTP_FileRead($pre, $Size)
            $preread = _HexToString($HEX)

            $Form2 = GUICreate("Aperçu", 411, 401, 192, 124, BitOR($WS_CAPTION, $WS_OVERLAPPEDWINDOW, $WS_TILEDWINDOW, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
            GUICtrlCreateEdit("", 0, 0, 410, 400, BitOR($ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL))
            GUICtrlSetData(-1, $preread)

            GUISetState(@SW_SHOW, $Form2)

            _FTP_FileClose($pre)

        Case $GUI_EVENT_CLOSE
            Exit
Voila en espérant que vous pourrez m'aidez, merci d'avance.

Re: [Aide][FTP]Savoir ci un fichier a été mis a jour

Posté : lun. 16 août 2010 21:00
par GELDROC
Perso je ferai pluto ca a partir de la date de modification du fichier

par exemple le script enregistre une liste de fichier avec leur date de dernière modification
puis une boucle relie cette liste en comparent la date de chaque fichier a chaque fois
puis ci elle a changer OP Mesage

Re: [Aide][FTP]Savoir ci un fichier a été mis a jour

Posté : lun. 16 août 2010 21:02
par GELDROC
est ils possible d'avoir ce Script de FTP pour l'essayer sur mon sever S'il te plaie :shock:

Re: [Aide][FTP]Savoir ci un fichier a été mis a jour

Posté : lun. 16 août 2010 21:17
par SrBelial
le pb du script qui se ferme entièrement vient de la façon dont tu gère la fermeture de ta fenêtre ....
enlève le exit, et fais juste disparaitre la fenêtre concernée, il faut réserver la fonction exit lorsque tu souhaite quitter complètement ton script (voir dans la doc associée)

pour ce qui est du ftp :
-> ne pas faire par rapport au nombre de lignes : il serait nécessaire de retélécharger le fichier à chaque passage dans la boucle, impossible de connaitre le nombre de lignes sur un fichier distant.

-> chercher des fonctions pour connaitre la date de modification du fichier, et à chaque passage dans la boucle on compare avec la date de la boucle précédente puis traitement en fonction de la comparaison, et enfin on mets à jour la variable contenant la date de la boucle précédente avec la valeur de la dernière date de modification trouvée.

Re: [Aide][FTP]Savoir ci un fichier a été mis a jour

Posté : lun. 16 août 2010 21:24
par robin25
Merci beaucoup pour toutes ces informations, je vais chercher du cote de la date de modification des fichiers. Je vous fait part de l'avancer du projet des que possible. Pour mon scripte il est pour un usage spéciale il ne permet que de voir ci un fichier à été mis a jour, de le télécharger et de l'afficher en direct mais ci tu le veux ca ne me dérange pas de te le passer lorsque je l'aurais terminer.

Re: [..]Savoir ci un fichier a été mis a jour sur ftp

Posté : mar. 17 août 2010 22:10
par robin25
Bon ben c'était jute pour vous dire que je rame dans l'avancement de mon projet...

J'ai presque trouver la solution pour fermer la fenetre sans fermer le log mais il s'en suit un freeze total du scripte une idée êut etre? sinon pour trouver ci le fichier a été maj il est presque impossible de savoir la date de modif avec autoit, mais avec _ftp-Filegetsize je pense que je vais pouvoir m'en sortir^^ j'attends quand même vos idées merci d'avance.

Code : Tout sélectionner

Case $Button2 ;Afficher le txt


            $pre = _FTP_FileOpen($Connect, $Current & $Dir)

            $Size = 1000000
            $HEX = _FTP_FileRead($pre, $Size)
            $preread = _HexToString($HEX)

            $Forme2=GUICreate("Aperçu", 322, 382, 232, 204)
            GUICtrlCreateEdit("", 0, -2, 321, 349, BitOR($WS_CAPTION, $WS_OVERLAPPEDWINDOW, $WS_TILEDWINDOW, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
            GUICtrlSetData(-1, $preread)
            $Button11 = GUICtrlCreateButton("Fermer", 124, 354, 75, 25, $WS_GROUP)
            GUISetState(@SW_SHOW)

            _FTP_FileClose($pre)
            While 1




                $nMsg = GUIGetMsg()
                    Switch $nMsg
                    Case $Button11

                         GUIDelete ($Forme2)
                    EndSwitch
            WEnd

Re: [..]Savoir ci un fichier a été mis a jour sur ftp

Posté : mar. 17 août 2010 22:28
par Sh4dows
Remplace ton GuiDelete() par :

Code : Tout sélectionner

GUISetState(@SW_HIDE)
 
Ta gui n'est pas détruite mais simplement masquer !
Et pour la réafficher :

Code : Tout sélectionner

GUISetState(@SW_SHOW)
 
Voilà pour ma ptite intervention ^^