nablimohavb
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention27 février 2009
-
26 févr. 2009 à 14:35
nablimohavb
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention27 février 2009
-
27 févr. 2009 à 10:25
Bonjours
Je travaille sur une application qui fait l'envoie d'un fichier de données vert une machine
l'envoie se fait à traver un patch "Patch.exe", le patch renvoi un fichier resultat d'envoi,dedans indiquant si le transfert et réalisée avec succé ou non.
pour lire le resultat, j'utilise un timer qui pointe chaque 10s vers lechemin du fichier et lit le resultat d'envoi
le probleme et que des fois le timer ouvre le fichier sans rein trouver,car à la fin de l'envoi le patch genere le fichier ensuit il ecrit le resultat
Y a t'il une autre solution pour bien lire le fichier resultat au bon moment.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 févr. 2009 à 14:58
tu cherches en gros a lire le fichier, si les modifications le concernant sont terminées ?
tu peux tester la date de modif de ce fichier (FileDateTime) et attendre une dizaine de secondes après cette date avant d'incorporer le fichier...
nablimohavb
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention27 février 2009 26 févr. 2009 à 15:29
salut
je ne peut pas preciser le temp d'attente pour lire le fichier,car la reponse et reliée à la quantitée des données envoyé, plus le fichier est volumineux -> plus de temp à attendre
j'ai utilisé ces fonction mour mettre la main sur la commande de l'envoie et attendre jusqu'a quelle se termine
mais le probleme,et que des fois si la commande de l'envoie (patch.exe) se plante , l'application de plante aussi
dim retval as long , pHandle as long , ret as long
retval = Shell(App.Path & "patch.exe, vbMinimizedFocus)
pHandle = OpenProcess(SYNCHRONIZE, False, retval)
ret = WaitForSingleObject(pHandle, INFINITE)
ret = CloseHandle(pHandle)
deleplace
Messages postés40Date d'inscriptionmardi 4 octobre 2005StatutMembreDernière intervention 2 mars 2009 26 févr. 2009 à 23:36
Si tu fait un transfer par Socket
Il a faut arriver à les mettre en route
tu aura un interruption à la fin du transfert
en restant sur ton idée de Timer
tu peux tenter de déplacer ou renommer le fichier que tu veux lire
si apparait une erreur, c'est qu'il est encore ouvert
donc que le transfert n'est pas terminé
je ne peux pas te donner de code, je programme en VB6
Vous n’avez pas trouvé la réponse que vous recherchez ?
nablimohavb
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention27 février 2009 27 févr. 2009 à 10:11
Bonjours
excusez moi,ma description précedante manque un peut de détailles.
je fait l'envoie par un fichier .bat "Script.bat", ce fichier contient la commande suivante
"Patch.exe" WR adressemachine1 adressemachine2 ..."
Comme la taille du fichier de données à envoyer augmente la durée de l'envoi ,le nb des machines
augmentent aussi la durée
Moi je ne m'interesse pas baucoup si le transfert est passée totalement avec succée,mais j'interesse a refaire l'envoie
chque fois qu'il echoue ou depasse une certaine durée
je veut derterminer la durée du processus d'envoi en cour en temp réel,et le comparer a une constante
private const temp=&H300000 (5min),
si le processus se plante et depasse cette durée,je le termine,pour que je puisse refaire l'envoie de nouveau
Comment je peut faire cette démarche?
nablimohavb
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention27 février 2009 27 févr. 2009 à 10:25
Salut
l'operation d'envoie doit etre automatique,car le fichier de donnée est envoyé
par un serveur distant,dans dossier predéfini.
l'application doit verfiier chaque (10s) si le fichier existe ou pas,si oui elle execute l'envoie