[Delphi] Obtenir un callback sur la copie d'un fichier

Obtenir un callback sur la copie d'un fichier [Delphi] - Programmation

Marsh Posté le 12-03-2002 à 12:13:14    

J'ai une appli Delphi qui copie des fichiers (pour cela, j'utilise l'API CopyFile car je n'ai pas trouvé de routine Delphi)
 
Le problème est que lors de la copie, je voudrais savoir ou il en est (genre progressbar) mais CopyFile n'a pas de callback !
Donc, connaissez vous une méthode de copie avec callback.
 
2 réponses que je vous demande de ne pas faire :
1 - La copie brutale en ouvrant le fichier en binaire et en le copiant bit par bit
2 - Un compo style JCL ou BUPack, l'appli doit être 100% freeware sans contraintes (même GNU GPL) donc je ne peut pas utiliser ces compos...  :(


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 12:13:14   

Reply

Marsh Posté le 12-03-2002 à 12:38:06    

ciler a écrit a écrit :

J'ai une appli Delphi qui copie des fichiers (pour cela, j'utilise l'API CopyFile car je n'ai pas trouvé de routine Delphi)
 
Le problème est que lors de la copie, je voudrais savoir ou il en est (genre progressbar) mais CopyFile n'a pas de callback !
Donc, connaissez vous une méthode de copie avec callback.
 
2 réponses que je vous demande de ne pas faire :
1 - La copie brutale en ouvrant le fichier en binaire et en le copiant bit par bit
2 - Un compo style JCL ou BUPack, l'appli doit être 100% freeware sans contraintes (même GNU GPL) donc je ne peut pas utiliser ces compos...  :(  




 
Quelles sont les contraintes de GNU-GPL ???


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 12:47:06    

et en utilisant les SHFileOperation de Win9x/NT ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 12:53:03    

antp a écrit a écrit :

et en utilisant les SHFileOperation de Win9x/NT ?  




 
Je vais encore passer pour un neuneu mais :
C quoi ces trucs là ?  :sweat:  :??:
 
@ Juju : Ben, si tu utilise du code ou des compos qui sont sous cette liscence, tu dois publier ton source (C pas le problème pour moi) et adjoindre au programme un fichier texte contenant la liscence GPL.  
Or là, je fais ce soft pour un devoir d'info et il est dit quele tout ne doit contenir qu'UN fichier .exe (donc pas de fichier texte) MAIS le soft sera mis ensuite en dl tel quel sur le serveur de l'école, donc il doit respecter les règles type GPL...

 

[jfdsdjhfuetppo]--Message édité par ciler--[/jfdsdjhfuetppo]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 14:14:49    

pour le SHFileOperation, c'est dans l'aide Win32 Programmer's Reference, dans les fichiers d'aide de Borland.
Sinon ça doit se trouver facilement:
http://groups.google.com/groups?q= [...] a=N&tab=wg
Mais apparemment il n'y a pas non plus moyen de le faire avec cette fonction :/

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 16:56:47    

Vais ptet dire 1 connerie... en checkant la taille du fichier périodiquement ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:05:29    

[SDF]Poire a écrit a écrit :

Vais ptet dire 1 connerie... en checkant la taille du fichier périodiquement ?  




 
pour les petits fichiers, je crois que tout est mis dans la ram, puis recopié vite fait en destination.
En plus si c'est sur le même disque, ya pas de déplacement physique, juste dans le MBR (l'IPL en fait)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 17:07:54    

juju_le_barbare a écrit a écrit :

 
 
pour les petits fichiers, je crois que tout est mis dans la ram, puis recopié vite fait en destination.
En plus si c'est sur le même disque, ya pas de déplacement physique, juste dans le MBR (l'IPL en fait)  




Beh ds C 2 cas la progress bar est inutile de toute façon ;)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:12:56    

[SDF]Poire a écrit a écrit :

 
Beh ds C 2 cas la progress bar est inutile de toute façon ;)  




en fait la progress bar est utile pour la copie/déplacement de plein de fichiers. Dans ce cas il suffit de checker le nombre de fichiers avant la copie dans les 2 reps, puis toutes les sec pendant la copie des 2 reps, et faire une différence...

 

[jfdsdjhfuetppo]--Message édité par juju_le_barbare--[/jfdsdjhfuetppo]


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 17:13:55    

juju_le_barbare a écrit a écrit :

 
en fait la progress bar est utile pour la copie/déplacement de plein de fichiers. D  




Oui mais ds les 2 cas que tu as sité elle est instantanné


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:13:55   

Reply

Marsh Posté le 12-03-2002 à 17:18:18    

[SDF]Poire a écrit a écrit :

 
Oui mais ds les 2 cas que tu as sité elle est instantanné  




oui, sdf, oui !!!
pq tu es si lourd aujourd'hui ? c'est les 21 ans ???


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 17:19:27    

juju_le_barbare a écrit a écrit :

 
oui, sdf, oui !!!
pq tu es si lourd aujourd'hui ? c'est les 21 ans ???  




eh t'as édité hein ;)
et en + G que 20 ans
 
Et je défend seulement mon hypothese de solution...

 

[jfdsdjhfuetppo]--Message édité par [SDF]Poire--[/jfdsdjhfuetppo]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:20:19    

[SDF]Poire a écrit a écrit :

 
eh t'as édité hein ;)
et en + G que 20 ans  




 
ooops 20 ans, OK !


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 17:24:59    

:D (up pour l'édit ;))


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:37:07    

[SDF]Poire a écrit a écrit :

:D (up pour l'édit ;))  




en fait ya mieux que ce que j'ai dit, j'aurais du réfléchir...
on compte le nombre de fichiers à envoyer (nb_fichiers), on paramétrise (?) la scroll bar avec min : 1 et max : nb_fichiers,
puis après chaque fichier copié on incrémente la scrollbar de 1, ou bien toutes les secondes avec 1 timer (mais moins élégent)...
 
@++ et bonne nuit :D  :D   :p  :na:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 12-03-2002 à 17:39:12    

Hélas, le coup de checker la taille ne marche pas...
0 jusqu'a la fin de la copie et la bunk, pleine taille.
En plus, c'est pas vraiement beaucoup de petits fchiers qui sont copiés, mais quelques gros...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 17:48:53    

juju_le_barbare a écrit a écrit :

 
en fait ya mieux que ce que j'ai dit, j'aurais du réfléchir...
on compte le nombre de fichiers à envoyer (nb_fichiers), on paramétrise (?) la scroll bar avec min : 1 et max : nb_fichiers,
puis après chaque fichier copié on incrémente la scrollbar de 1, ou bien toutes les secondes avec 1 timer (mais moins élégent)...
 
@++ et bonne nuit :D  :D   :p  :na:  




ça résout en rien le pb... ce qu'il veut C la progression même sur 1 fichier...


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:52:40    

[SDF]Poire a écrit a écrit :

 
ça résout en rien le pb... ce qu'il veut C la progression même sur 1 fichier...  




 
tt à fait...  :sweat: Comment il fait, Windows ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 17:53:29    

Je panse que avec ce qu'a donné Antp ça doit être possible :
lpszProgressTitle
 
Pointer to a string to use as the title for a progress dialog box. This member is used only if fFlags includes FOF_SIMPLEPROGRESS.
 
mais ptet pas de la façon excompté

 

[jfdsdjhfuetppo]--Message édité par [SDF]Poire--[/jfdsdjhfuetppo]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:54:47    

ciler a écrit a écrit :

 
 
tt à fait...  :sweat: Comment il fait, Windows ?  




Windows il copit buffer par buffer hein ;) C la seule méthode...
Mais il y a ptet 1 API pour te simplifier la vie....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 17:55:26    

ciler a écrit a écrit :

 
 
tt à fait...  :sweat: Comment il fait, Windows ?  




 
Windows il utilise le SHFileOperation
cette fonction permet d'afficher la même fenêtre que l'Explorateur Windows


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 17:56:18    

Bon, je vais répondre (pour une fois).
 
1. Je vois pas pourquoi tu veux pas utiliser le JvPack (le BUPack n'existe plus je le rapelle), ou un autre truc de delphi-jedi, c'est sous licence GNU-GPL, tu peux faire tout ce que tu veux avec, mais tu peux pas te faire du fric sur une version modifiée du code source, c'est tout... Enfin, chacun son truc.
 
2. Utilises deux TFileStream et copie par coup de 1-2ko dans un buffer, tu pourras faire ta progression alors...


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 12-03-2002 à 18:00:09    

Buitoni a écrit a écrit :

Bon, je vais répondre (pour une fois).
 
1. Je vois pas pourquoi tu veux pas utiliser le JvPack (le BUPack n'existe plus je le rapelle), ou un autre truc de delphi-jedi, c'est sous licence GNU-GPL, tu peux faire tout ce que tu veux avec, mais tu peux pas te faire du fric sur une version modifiée du code source, c'est tout... Enfin, chacun son truc.
 
2. Utilises deux TFileStream et copie par coup de 1-2ko dans un buffer, tu pourras faire ta progression alors...  




 
Merci, mais j'ai expliqué le pourquoi du 1 vers le milieu du topic, j'aimerais bien mais j'ai pas le choix, c'est tout.
Pour le 2 ... J'espérais pouvoir éviter la méthode "brutale" mais si il n'y a rien d'autre...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 18:05:55    

C'est pas brutal comme méthode, tu crois qu'il fait comment Windows? Hein?  :D  
 

Citation :


@ Juju : Ben, si tu utilise du code ou des compos qui sont sous cette liscence, tu dois publier ton source (C pas le problème pour moi) et adjoindre au programme un fichier texte contenant la liscence GPL.  


 
C'est quoi ce délire? Depuis quand tu es obligé de publier tes sources quand tu utilises des composants sous GPL? Faut arrêter de boire, c'est pas bon...
 
Quand tu modifies un composant, tu dois republier ta version modifiée, mais en aucun cas ton programme  :pt1cable:  
 
Sinon on aurait droit à avoir les sources de milliers de programmes commerciaux  :D


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 12-03-2002 à 18:36:58    

Buitoni a écrit a écrit :

 
C'est quoi ce délire? Depuis quand tu es obligé de publier tes sources quand tu utilises des composants sous GPL? Faut arrêter de boire, c'est pas bon...




 
 
Je bois pas... On va dire que j'ai mal compris le GPL. Bon dans le doute, je vais relire la charte de près ce soir, mais il me semble bien qu'un prog contenant du code sous GPL doit lui même être sous GPL et donc opensource.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 18:43:33    

TFileStream rulez  :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 18:43:35    

Soit dit en passant, la licence pour delphi-jedi (JvPack et cie), c'est la MPL, pas la GPL...  
 
Et on peut lire clairement sur le site:
 

Citation :


Project JEDI's implementation of the MPL allows developers to use its code in their applications ("Larger Work" ) regardless of whether the intended distribution will be in the public domain or as commercial applications, as long as the licence conditions are met. For a more detailed explanation, an annotated version of the MPL is available.  


 
Voila ce que tu dois savoir en résumé. Tu fais ce que tu veux
(le premier qui dit loreal il fait une semaine d'assembleur OS/390!)


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 12-03-2002 à 19:00:49    

Voila ce que je craignais... direct de la MPL

Citation :


     3.7. Larger Works.
     You may create a Larger Work by combining Covered Code with other code
     not governed by the terms of this License and distribute the Larger
     Work as a single product. In such a case, You must make sure the
     requirements of this License are fulfilled for the Covered Code.



---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 12-03-2002 à 20:12:07    

va voir là http://www.torry.net/files.htm
 
par exemple le composant copyfile permet l'affichage d'une barre de progression, comme tu as les sources tu peux l'adapter à tes besoins

 

[jfdsdjhfuetppo]--Message édité par Taureau--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-03-2002 à 20:19:24    

ciler a écrit a écrit :

Voila ce que je craignais... direct de la MPL

Citation :


     3.7. Larger Works.
     You may create a Larger Work by combining Covered Code with other code
     not governed by the terms of this License and distribute the Larger
     Work as a single product. In such a case, You must make sure the
     requirements of this License are fulfilled for the Covered Code.


 




 
 
Tu es sur que tu comprends bien ce que ca veux dire? :-D
Faudra songer à ne pas utiliser des traducteurs pour lire des licences, mais prendre qqs cours d'anglais  :na:  
 
Puis bon, je vois pas pourquoi je m'anarche, c'est ta merde si tu veux pas utiliser des trucs sous GPL/MPL parce que tu comprends pas les licences...
 
Sur ce... je laisse antp ou poire continuer, c pas mon trip de m'égosiller 50* pour la même chose.


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 12-03-2002 à 20:19:48    

ciler a écrit a écrit :

Voila ce que je craignais... direct de la MPL

Citation :


     3.7. Larger Works.
     You may create a Larger Work by combining Covered Code with other code
     not governed by the terms of this License and distribute the Larger
     Work as a single product. In such a case, You must make sure the
     requirements of this License are fulfilled for the Covered Code.


 




 
Et c'est quoi les requirement de la license que tu dois fulfiller ?
Pcq si c'est un truc genre "ne pas publier les source du composant en disant que c'est ton boulot", y a pas de problème dans ton cas.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 20:20:12    

Taureau a écrit a écrit :

va voir là http://www.torry.net/files.htm
 
par exemple le composant copyfile permet l'affichage d'une barre de progression, comme tu as les sources tu peux l'adapter à tes besoins  




Mieux avec l'édit  ;) j'allais filer le lien


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 20:21:34    

Buitoni a écrit a écrit :

 je m'anarche




 
:??:
je te savais plus anarché que ça :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 20:21:36    

Moi j'y connais rien ds les licences et je m'en fout... (enfin presque...)
Enfin pour le moment C pas mon pb...
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 20:22:28    

antp a écrit a écrit :

 
 
:??:
je te savais plus anarché que ça :D  




Antp relecturage nétiquette hein.... ça arrive fautes/fautes de frappe....  :na:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 20:43:08    

antp a écrit a écrit :

 
 
:??:
je te savais plus anarché que ça :D  




 
T'aimes pas ca?
Mais si tu continues je t'achatte a un arbre pour la nuit hein  :pt1cable:


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 12-03-2002 à 20:44:25    

Buitoni a écrit a écrit :

 
 
T'aimes pas ca?
Mais si tu continues je t'achatte a un arbre pour la nuit hein  :pt1cable:  




Non ça compte pas si C toi ;) (private)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 21:42:53    

[SDF]Poire a écrit a écrit :

(private)  




 
 :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-03-2002 à 21:49:58    

antp a écrit a écrit :

 
 
 :heink:  




non tu comprendras pas  :p


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 12-03-2002 à 22:00:24    

[:sisicaivrai]  
c'est quoi toutes ces magouilles


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed