Questionnement sur Do while not EOF() [Résolu]

MaitreTeTe 33 Messages postés jeudi 4 février 2016Date d'inscription 18 octobre 2016 Dernière intervention - 5 mars 2016 à 02:44 - Dernière réponse : vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention
- 5 mars 2016 à 18:30
Bonjour,
Je me demmande pourquoi que mon text box n'affiche jamais le non du fichier sauf quand c'est le dernier fichier a télécharger. Je m'explique. Je télécharge un fichier texte "update" avec une liste de lient et de nom de fichier. La première ligne est le nombre de fichier multiplié par 3. ensuite je lit 3 ligne différente par fichier qui est 1: le nom du ficher 2:la source et 3:La destination. J'utilise donc la fonction Do while not EOF() pour lire jusqu'à la fin du ficher puis passé a la prochaine étape. A chaque fichier, j'indique le fichier en cours de téléchargement dans un label mais on dirais qu'il ne l'affiche pas a moins qu'il sois rendu a lire la fin du fichier. Voila le code.

Open "update\" & version1 & ".nasd" For Input As #1
Input #1, uptotal
progress.Max = Val(uptotal) * 3

Do While Not EOF(1)
Input #1, upnom
telfic.Caption = upnom
Sleep (500)
Input #1, uplink
Input #1, updest
DownloadFile uplink, "update\temp\" & upnom
progress.Value = progress.Value + 1
Loop

Close #1

donc si je télécharge 6 fichiers, c'est donc seulement le dernier fichier qui sera afficher dans le label (telfic.Caption)

Je pense alors peu-être utilisé à la place:


Open "update\" & version1 & ".nasd" For Input As #1
Input #1, uptotal
progress.Max = Val(uptotal) * 3

Telechargement:
Input #1, upnom
telfic.Caption = upnom
Sleep (500)
Input #1, uplink
Input #1, updest
DownloadFile uplink, "update\temp\" & upnom
progress.Value = progress.Value + 1

If not EOF(1) then
goto Telechargement
end if

Close #1

Je tien a précisé que la ligne de code " If not EOF(1) then " c'est une supposition de script puisque je ne sais pas comment vraiment donné cette instruction!

Merci de votre aide !
Afficher la suite 

5 réponses

Répondre au sujet
MaitreTeTe 33 Messages postés jeudi 4 février 2016Date d'inscription 18 octobre 2016 Dernière intervention - Modifié par MaitreTeTe le 5/03/2016 à 02:58
0
Utile
Bon, J'ai fais l'essai la 2ieme version du code et sa fais exactement la même chose..... je suis vraiment perdu :P je ne sais plus quoi faire !

Est-ce possible qu'il ne change aucune Label ou text box temps et aussi longtemps que le script du bouton sois terminé ?
Commenter la réponse de MaitreTeTe
MaitreTeTe 33 Messages postés jeudi 4 février 2016Date d'inscription 18 octobre 2016 Dernière intervention - 5 mars 2016 à 04:48
0
Utile
3
Bon, a force d'analysé la situation, j'ai compris que les changement visuel ce fond a la fin du scrip. J'ai réussit a faire ce que je voullais en utilisant des timer. C'est peu-être pas la meilleur des solutions, mais pour un novice qui n'as pas touché a VB6 depuis 10 ans, sa va faire le travail !
vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 5 mars 2016 à 12:40
bonjour
après
telfic.Caption = upnom 
mets un
telfic.Refresh() 

Cela force le label à se réafficher immédiatement
MaitreTeTe 33 Messages postés jeudi 4 février 2016Date d'inscription 18 octobre 2016 Dernière intervention > vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 5 mars 2016 à 16:13
J'ai esseillé.......... je suis bouche bé ! lollll Sa marche ! Je vais refaire le codage en propre avec refresh ! Merci infiniment
vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention > MaitreTeTe 33 Messages postés jeudi 4 février 2016Date d'inscription 18 octobre 2016 Dernière intervention - 5 mars 2016 à 18:30
La version la plus propre serait celle-ci
Open "update\" & version1 & ".nasd" For Input As #1
Input #1, uptotal
progress.Max = Val(uptotal) * 3

Do While Not EOF(1)
    Input #1, upnom
    telfic.Caption = upnom
    telfic.refresh()
    Input #1, uplink
    Input #1, updest  
    DownloadFile uplink, "update\temp\" & upnom
    progress.Value = progress.Value + 1
Loop

Close #1 


On évite les Goto qui produisent du code "spaghetti" difficile à suivre !
Commenter la réponse de MaitreTeTe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.