J'essaye d'ajouter une barre de progression =E0 un transfert ftp par
inet mais la propri"t=E9 getchunk me retourne rien.
Savez vous d'ou provient ce probleme ?
Inet1.Execute , "size /" & fic_source 'demande la taille du fichier a
telecharger
Do Until Inet1.StillExecuting =3D False 'boucle pendant le traitement de
inet
DoEvents
Loop
taille =3D Inet1.GetChunk(1024) 'recuperation de la taille dans taille
En sortie, j'ai taille=3D""=20
=20
Merci=20
=20
Johnson
Ne serait-ce pas tout simplement un problème de déclaration de variable et de type. Pour moi taille devrait être un long et il semble que le retour soit une string. En typant taille, on aurait au moins une erreur de type. Sinon lors de l'exécution pas à pas il est possible de mettre un espion sur une variable et de voir éventuellement un champ ou une propriété..
a écrit dans le message de news:
Bonjour,
J'essaye d'ajouter une barre de progression à un transfert ftp par inet mais la propri"té getchunk me retourne rien.
Savez vous d'ou provient ce probleme ?
Inet1.Execute , "size /" & fic_source 'demande la taille du fichier a telecharger Do Until Inet1.StillExecuting = False 'boucle pendant le traitement de inet DoEvents Loop
taille = Inet1.GetChunk(1024) 'recuperation de la taille dans taille
En sortie, j'ai taille=""
Merci
Johnson
Ne serait-ce pas tout simplement un problème de déclaration de variable et
de type. Pour moi taille devrait être un long et il semble que le retour
soit une string. En typant taille, on aurait au moins une erreur de type.
Sinon lors de l'exécution pas à pas il est possible de mettre un espion sur
une variable et de voir éventuellement un champ ou une propriété..
<john.ambou@free.fr> a écrit dans le message de news:
1159357293.321070.55260@m7g2000cwm.googlegroups.com...
Bonjour,
J'essaye d'ajouter une barre de progression à un transfert ftp par
inet mais la propri"té getchunk me retourne rien.
Savez vous d'ou provient ce probleme ?
Inet1.Execute , "size /" & fic_source 'demande la taille du fichier a
telecharger
Do Until Inet1.StillExecuting = False 'boucle pendant le traitement de
inet
DoEvents
Loop
taille = Inet1.GetChunk(1024) 'recuperation de la taille dans taille
Ne serait-ce pas tout simplement un problème de déclaration de variable et de type. Pour moi taille devrait être un long et il semble que le retour soit une string. En typant taille, on aurait au moins une erreur de type. Sinon lors de l'exécution pas à pas il est possible de mettre un espion sur une variable et de voir éventuellement un champ ou une propriété..
a écrit dans le message de news:
Bonjour,
J'essaye d'ajouter une barre de progression à un transfert ftp par inet mais la propri"té getchunk me retourne rien.
Savez vous d'ou provient ce probleme ?
Inet1.Execute , "size /" & fic_source 'demande la taille du fichier a telecharger Do Until Inet1.StillExecuting = False 'boucle pendant le traitement de inet DoEvents Loop
taille = Inet1.GetChunk(1024) 'recuperation de la taille dans taille
En sortie, j'ai taille=""
Merci
Johnson
john.ambou
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai
ensuite inseré dans mon code comme ceci :
dim taille as long
dim essai as string
essai = inet1.getchunk(1024)
taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque
ensuite la prochaine ligne.
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
Vincent Guichard
a écrit :
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
Bonjour,
Si le transfert est en cours, (ce qui semble être le cas), il est possible que le serveur ftp "cache" les données tant que le transfert n'est pas fini. Est ce que le le fichier apparait lors d'une commande LIST?
Vincent Guichard
john.ambou@free.fr a écrit :
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai
ensuite inseré dans mon code comme ceci :
dim taille as long
dim essai as string
essai = inet1.getchunk(1024)
taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque
ensuite la prochaine ligne.
Merci
Johnson
Bonjour,
Si le transfert est en cours, (ce qui semble être le cas), il est
possible que le serveur ftp "cache" les données tant que le transfert
n'est pas fini. Est ce que le le fichier apparait lors d'une commande LIST?
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
Bonjour,
Si le transfert est en cours, (ce qui semble être le cas), il est possible que le serveur ftp "cache" les données tant que le transfert n'est pas fini. Est ce que le le fichier apparait lors d'une commande LIST?
Vincent Guichard
Patrice Henrio
En fait votre essai doit nécessairement donner la même chose de cette façon en effet dans votre cas vous récupérez toujours le résultat dans une string (ce qui est peut-être normal) donc que le retour soit dans taille (en tant que string) ou essai (en tant que string) ne change rien à l'affaire. Il s'agit de la représentation en mémoire des données.
Par exemple si une chaîne se termine par le caractère H00 (caractère null) et que les long sont codés de la façon suivante MotBas-MotHaut Chaque mot (word sur deux octets, le long est sur 4 octets) étant codé ByteBas-ByteHaut une valeur de 1024 sera codé en mémoire 00 10 04 00 00 00 00 00 Lu sous forme de chaîne : "" On remarque d'ailleurs que même si le codage est dans l'autre sens (poids fort avant le poids faible) la lecture sous forme de chaîne restera ""
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Si Inet.getChunk(1024) renvoie un variant alors la réception dans une string peut transformer l'écriture d'un nombre en "".
Maintenant je ne connais pas vraiment inet donc il faudrait que je teste moi-même.
a écrit dans le message de news:
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
En fait votre essai doit nécessairement donner la même chose de cette façon
en effet dans votre cas vous récupérez toujours le résultat dans une string
(ce qui est peut-être normal) donc que le retour soit dans taille (en tant
que string) ou essai (en tant que string) ne change rien à l'affaire. Il
s'agit de la représentation en mémoire des données.
Par exemple si une chaîne se termine par le caractère H00 (caractère null)
et que les long sont codés de la façon suivante MotBas-MotHaut
Chaque mot (word sur deux octets, le long est sur 4 octets) étant codé
ByteBas-ByteHaut une valeur de 1024 sera codé en mémoire
00 10 04 00 00 00 00 00
Lu sous forme de chaîne : ""
On remarque d'ailleurs que même si le codage est dans l'autre sens (poids
fort avant le poids faible) la lecture sous forme de chaîne restera ""
Je pensais plutôt à écrire plutôt directement
taille=inet1.getchunk(1024)
car je ne vois pas pourquoi cela devrait donner une string.
Si Inet.getChunk(1024) renvoie un variant alors la réception dans une string
peut transformer l'écriture d'un nombre en "".
Maintenant je ne connais pas vraiment inet donc il faudrait que je teste
moi-même.
<john.ambou@free.fr> a écrit dans le message de news:
1159362623.325042.290280@i3g2000cwc.googlegroups.com...
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai
ensuite inseré dans mon code comme ceci :
dim taille as long
dim essai as string
essai = inet1.getchunk(1024)
taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque
ensuite la prochaine ligne.
En fait votre essai doit nécessairement donner la même chose de cette façon en effet dans votre cas vous récupérez toujours le résultat dans une string (ce qui est peut-être normal) donc que le retour soit dans taille (en tant que string) ou essai (en tant que string) ne change rien à l'affaire. Il s'agit de la représentation en mémoire des données.
Par exemple si une chaîne se termine par le caractère H00 (caractère null) et que les long sont codés de la façon suivante MotBas-MotHaut Chaque mot (word sur deux octets, le long est sur 4 octets) étant codé ByteBas-ByteHaut une valeur de 1024 sera codé en mémoire 00 10 04 00 00 00 00 00 Lu sous forme de chaîne : "" On remarque d'ailleurs que même si le codage est dans l'autre sens (poids fort avant le poids faible) la lecture sous forme de chaîne restera ""
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Si Inet.getChunk(1024) renvoie un variant alors la réception dans une string peut transformer l'écriture d'un nombre en "".
Maintenant je ne connais pas vraiment inet donc il faudrait que je teste moi-même.
a écrit dans le message de news:
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Merci Johnson
Jean-marc
a écrit dans le message de news:
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Hello,
la première chose à faire est je pense de lire la documentation sur le sujet (RTFM disent les anglophones: "Read The Fucking Manual!").
Si MSDN n'est pas installé sur ta machine, voici la version online: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconusinginternettransfercontrol.asp
Il se trouve que la doc est bien faite et donne même un exemple: Extrait de l'exemple: Private Sub Inet1_StateChanged(ByVal State As Integer) ' Retrieve server response using the GetChunk ' method when State = 12. This example assumes the ' data is text.
Select Case State ' ... Other cases not shown.
Case icResponseReceived ' 12 Dim vtData As Variant ' Data variable. Dim strData As String: strData = "" Dim bDone As Boolean: bDone = False
' Get first chunk. vtData = Inet1.GetChunk(1024, icString) DoEvents Do While Not bDone strData = strData & vtData DoEvents ' Get next chunk. vtData = Inet1.GetChunk(1024, icString) If Len(vtData) = 0 Then bDone = True End If Loop
txtData.Text = strData End Select
End Sub
Bonne suite :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
<john.ambou@free.fr> a écrit dans le message de news:
1159362623.325042.290280@i3g2000cwc.googlegroups.com...
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai
ensuite inseré dans mon code comme ceci :
dim taille as long
dim essai as string
essai = inet1.getchunk(1024)
taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque
ensuite la prochaine ligne.
Hello,
la première chose à faire est je pense de lire la documentation
sur le sujet (RTFM disent les anglophones: "Read The Fucking Manual!").
Si MSDN n'est pas installé sur ta machine, voici la version
online:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconusinginternettransfercontrol.asp
Il se trouve que la doc est bien faite et donne même un exemple:
Extrait de l'exemple:
Private Sub Inet1_StateChanged(ByVal State As Integer)
' Retrieve server response using the GetChunk
' method when State = 12. This example assumes the
' data is text.
Select Case State
' ... Other cases not shown.
Case icResponseReceived ' 12
Dim vtData As Variant ' Data variable.
Dim strData As String: strData = ""
Dim bDone As Boolean: bDone = False
' Get first chunk.
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
strData = strData & vtData
DoEvents
' Get next chunk.
vtData = Inet1.GetChunk(1024, icString)
If Len(vtData) = 0 Then
bDone = True
End If
Loop
txtData.Text = strData
End Select
End Sub
Bonne suite :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Suite à votre réponse, j'ai déclaré une string "essai" je l'ai ensuite inseré dans mon code comme ceci :
dim taille as long dim essai as string
essai = inet1.getchunk(1024) taille = CLng(essai)
Mais ceci me donne toujours la meme erreur, essai = "" et ceci bloque ensuite la prochaine ligne.
Hello,
la première chose à faire est je pense de lire la documentation sur le sujet (RTFM disent les anglophones: "Read The Fucking Manual!").
Si MSDN n'est pas installé sur ta machine, voici la version online: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconusinginternettransfercontrol.asp
Il se trouve que la doc est bien faite et donne même un exemple: Extrait de l'exemple: Private Sub Inet1_StateChanged(ByVal State As Integer) ' Retrieve server response using the GetChunk ' method when State = 12. This example assumes the ' data is text.
Select Case State ' ... Other cases not shown.
Case icResponseReceived ' 12 Dim vtData As Variant ' Data variable. Dim strData As String: strData = "" Dim bDone As Boolean: bDone = False
' Get first chunk. vtData = Inet1.GetChunk(1024, icString) DoEvents Do While Not bDone strData = strData & vtData DoEvents ' Get next chunk. vtData = Inet1.GetChunk(1024, icString) If Len(vtData) = 0 Then bDone = True End If Loop
txtData.Text = strData End Select
End Sub
Bonne suite :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Vincent Guichard
Patrice Henrio a écrit :
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole texte, tout comme la plupart des protocoles datant des début de l'internet (à l'époque, pouvoir taper les commandes à la main et lire les réponses dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une chaine contenant la taille du fichier.
Vincent Guichard
Patrice Henrio a écrit :
Je pensais plutôt à écrire plutôt directement
taille=inet1.getchunk(1024)
car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole
texte, tout comme la plupart des protocoles datant des début de
l'internet (à l'époque, pouvoir taper les commandes à la main et lire
les réponses dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une
chaine contenant la taille du fichier.
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole texte, tout comme la plupart des protocoles datant des début de l'internet (à l'époque, pouvoir taper les commandes à la main et lire les réponses dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une chaine contenant la taille du fichier.
Vincent Guichard
Patrice Henrio
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
"Vincent Guichard" a écrit dans le message de news: 451cf203$0$27377$
Patrice Henrio a écrit :
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole texte, tout comme la plupart des protocoles datant des début de l'internet (à l'époque, pouvoir taper les commandes à la main et lire les réponses dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une chaine contenant la taille du fichier.
Vincent Guichard
OK
Au temps pour moi.
Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format
soit différent de celui de VB (caractère null en fin de chaîne ...)
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 451cf203$0$27377$ba4acef3@news.orange.fr...
Patrice Henrio a écrit :
Je pensais plutôt à écrire plutôt directement
taille=inet1.getchunk(1024)
car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole
texte, tout comme la plupart des protocoles datant des début de l'internet
(à l'époque, pouvoir taper les commandes à la main et lire les réponses
dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une
chaine contenant la taille du fichier.
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
"Vincent Guichard" a écrit dans le message de news: 451cf203$0$27377$
Patrice Henrio a écrit :
Je pensais plutôt à écrire plutôt directement taille=inet1.getchunk(1024) car je ne vois pas pourquoi cela devrait donner une string.
Ca doit donner une chaine parce que le protocole FTP est un protocole texte, tout comme la plupart des protocoles datant des début de l'internet (à l'époque, pouvoir taper les commandes à la main et lire les réponses dans un terminal était essentiel).
Donc un serveur ftp va répondre à une commande SIZE en renvoyant une chaine contenant la taille du fichier.
Vincent Guichard
Vincent Guichard
Patrice Henrio a écrit :
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle exacte. Auquel cas la chaine est vide simplement par ce que le fichier n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce que je l'ai testé.
Enfin, tant qu'on aura pas de retour de l'OP...
Vincent Guichard
Patrice Henrio a écrit :
OK
Au temps pour moi.
Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format
soit différent de celui de VB (caractère null en fin de chaîne ...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle
exacte. Auquel cas la chaine est vide simplement par ce que le fichier
n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce
que je l'ai testé.
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle exacte. Auquel cas la chaine est vide simplement par ce que le fichier n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce que je l'ai testé.
Enfin, tant qu'on aura pas de retour de l'OP...
Vincent Guichard
Patrice Henrio
effectivement
Je me rappelle avoir eu un problème avec un webbrowser car je testais le contenu alors qu'il n'était pas encore totalement chargé.
"Vincent Guichard" a écrit dans le message de news: 451d2e4d$0$5086$
Patrice Henrio a écrit :
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle exacte. Auquel cas la chaine est vide simplement par ce que le fichier n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce que je l'ai testé.
Enfin, tant qu'on aura pas de retour de l'OP...
Vincent Guichard
effectivement
Je me rappelle avoir eu un problème avec un webbrowser car je testais le
contenu alors qu'il n'était pas encore totalement chargé.
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 451d2e4d$0$5086$ba4acef3@news.orange.fr...
Patrice Henrio a écrit :
OK
Au temps pour moi.
Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son
format soit différent de celui de VB (caractère null en fin de chaîne
...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle
exacte. Auquel cas la chaine est vide simplement par ce que le fichier
n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce
que je l'ai testé.
Je me rappelle avoir eu un problème avec un webbrowser car je testais le contenu alors qu'il n'était pas encore totalement chargé.
"Vincent Guichard" a écrit dans le message de news: 451d2e4d$0$5086$
Patrice Henrio a écrit :
OK Au temps pour moi. Mais cela n'explique pas pourquoi la chaîne est vide, à moins que son format soit différent de celui de VB (caractère null en fin de chaîne ...)
Sauf si l'hypothèse que j'avance dans mon message de mercredi se révèle exacte. Auquel cas la chaine est vide simplement par ce que le fichier n'est pas encore accessible.
Parce que la commande SIZE en elle-même fonctionne parfaitement, pour ce que je l'ai testé.
Enfin, tant qu'on aura pas de retour de l'OP...
Vincent Guichard
john.ambou
Merci encore pour toutes ces réponses je vais enqueter dessus !!
Merci encore pour toutes ces réponses je vais enqueter dessus !!