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

Signaler
Messages postés
37
Date d'inscription
jeudi 4 février 2016
Statut
Membre
Dernière intervention
1 décembre 2018
-
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
-
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 !

2 réponses

Messages postés
37
Date d'inscription
jeudi 4 février 2016
Statut
Membre
Dernière intervention
1 décembre 2018

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é ?
Messages postés
37
Date d'inscription
jeudi 4 février 2016
Statut
Membre
Dernière intervention
1 décembre 2018

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 !
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
bonjour
après
telfic.Caption = upnom 
mets un
telfic.Refresh() 

Cela force le label à se réafficher immédiatement
Messages postés
37
Date d'inscription
jeudi 4 février 2016
Statut
Membre
Dernière intervention
1 décembre 2018
>
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021

J'ai esseillé.......... je suis bouche bé ! lollll Sa marche ! Je vais refaire le codage en propre avec refresh ! Merci infiniment
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137 >
Messages postés
37
Date d'inscription
jeudi 4 février 2016
Statut
Membre
Dernière intervention
1 décembre 2018

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 !