vbnino
Messages postés218Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention11 juillet 2010
-
22 mai 2007 à 21:29
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
23 mai 2007 à 11:17
Salut!
-Comment faire pour que une prograssebar progresse a fur et à mesure qu'un fichier se copie?
-Merci
A voir également:
Prograssebar progresse a fur et à mesure qu'un fichier se copie
jmfmarques: je n'ai pas encore pris le temps de regarder FileCopyEx. Vu que ma fonction est codée dans une DLL, je l'appelle via une seule ligne de code. La "lourdeur" de la fonction est donc "oubliée" dans ma programmation quotidienne
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mai 2007 à 21:36
Bonsoir,
Question : as-tu trouvé le truc qui te permette de connaître l'état d'avancement d'une copie de fichier ? (moi non, jusqu'à présent)
Selon ta réponse :
- si oui : je t'en supplie : publie ce truc..
- si non : alors il va falloir que tu fasses comme tout le monde : que tu "estimes" le temps de chargement en fonction de la taille du fichier, de l'horloge de ta machine, de l'encombrement du processeur, etc... etc...
Cette chose n'est pas trop difficile lorsque que la copie concerne plusieurs fichiers (on peut "ajuster" l'estimation de la durée en fonction des constatations faites lors de la copie des 1ers éléments). Il en va différemment lorsqu'un seul fichier est à copier (pas de "repères d'ajustement" possibles alors, bien évudemment...)
Une fois cette durée "estimée", le reste est un jeu d'enfant : faire avancer la barre en proportion du temps écoulé.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 mai 2007 à 21:41
Salut Jacques,
je me demandais, c'est pas possible (certainement approximativement) de lire en binaire (avec Open .. For) et d'écrire en même temps ?
(on compte le nombre de ligne, et on clacul un % avec ces nombres) ?
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mai 2007 à 21:51
Bonjour Mprtalino,
Ce doit être possible, oui, mais à quel prix en temps d'exécution ?
Mme Windows l'évite, apparemment (ses barres de progressions restent on ne peut plus approxumatives, comme tu peux le constater, quand ont fait une copie depuis un endroit vers l'autre de longs fichiers, dans l'explorateur)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mai 2007 à 21:59
CQFD
Conclusion : l'utilisation d'un affichage de progression de copie peut être envisagé lorsque plusieurs fichiers sont copiés (la durée constatée de copie des premiers permettant d'estimer la durée totale).
Il en va différemment s'il ne s'agit que d'un seul fichier (on ne peut alors valablement se "raccricher" à aucune "expérience").
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 mai 2007 à 00:30
Salut tout le monde,
une idée fofolle , jamais essayé ...théorique quoi
>Un label (couleur BackColor au choix)
>Un Timer
Label.Width=0
Sub Copier_Un_Fichier
Timer.Enabled=True
FileCopy ....
Label.Width=<valeur maximal>
Timer.Enabled=False
MsgBox "Terminé"
End Sub
Sub Tumer()
Label.Width=Label.Width+60
End Sub
Question qui se pose : Est ce que FileCopy monopolisera le système
pour empêcher l' instruction qui suit de s' éxécuter ?
<hr />
® l l i n g , l' agité du bocal :
Etre une heure, une heure seulement..Rien qu' une heure,
Vert, vert, vert et beau à la foooooooooooooooooooooooois.
<hr />
cavo789
Messages postés168Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention28 juillet 20091 23 mai 2007 à 08:41
Si cela t'est possible; pourquoi ne pas faire appel à la fonction API de Windows.
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Long
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Function ZCopyFile(ByVal sSourceFileName As String, ByVal sTargetFileName As String, _
Optional bAskConfirmation As Boolean = True, Optional ByVal hwnd As Long = 0) As Boolean
Dim shFile As SHFILEOPSTRUCT
Dim wResult As Long
Dim wFlags As Long
If Not bAskConfirmation Then wFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION Else wFlags = FOF_ALLOWUNDO
With shFile
.hwnd = hwnd
.wFunc = FO_COPY
.pFrom = sSourceFileName & vbNullChar & vbNullChar
.pTo = sTargetFileName & vbNullChar & vbNullChar
.fFlags = wFlags
End With
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mai 2007 à 09:08
Bonjour,
Si c'est pour se contenter de çà, autant alors se servir de la fonction FileCopyEx de la librairie Kernel32 de l'Api de Windows (elle sera aussi peu précise mais aura le mérite de "bouffer" moins de place !!)
Si on veut variment de si peu, je peux faire, y compris avec une "progressebar" affichant en son centre le "pourcentage" d'avancement !
cavo789
Messages postés168Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention28 juillet 20091 23 mai 2007 à 09:26
Bonjour jmfmarques, pas sûr de te suivre sur ce coup.
C'est certain que la méthode que j'ai mentionné occupe plusieurs lignes de code mais, à l'utilisation, elle me plaît assez bien. J'aurais aimé être capable de changer le caption de la fenêtre mais bon, ce qui est avantageux, ce que l'utilisateur connaît déjà le look&feel de cette fenêtre, la possibilité d'écraser un fichier avec ou sans confirmation, la possibilité d'annuler la copie au besoin, ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mai 2007 à 09:36
Bonjour cavo789
Oui ?
Et alors ? T'as jeté un couip d'oeil à ce que fait la fonction FileCopyEx ?
La même chose en direct !
Mais les résultats ne sont pas vraiment exacts, ni pour l'une (la tienne), ni pour l'autre (la mienne)
Je viens par ailleurs de tomber (en cherchant) sur cette source :
http://files.codes-sources.com/fichier.aspx?id=732&f=CopyFileProgress.frm
Elle est encore plus aléatoire en ce sens qu'elle se base sur l'évolution de l'occupation du lecteur ....
(vaut mieux ne pas penser à ce qui se passerait si d'autres opérations, lancées parallèlement...faisaient dans le même temps évoluer elles aussi cette occupation !!!)
Bref...
Je vais donc préparer cet après midi une source (que je n'aime pas, mais qui sera "moins pire" )