fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est problématique.
frJauge en paramètre est bien gentil mais c'est anti ergonomique
(présence d'un bouton annuler problématique), et mal intégré à
l'application.
Avez vous une idée pour faire la copie en recevant par événément par
exemple la quantité copiée?
Merci,
Gilles.
PS : il est exclu de coder soit même la copie par flit/fecrit, c'est
très très inférieur en performances, quelle que soit la taille du
buffer (qui en plus peut varier d'une machine à l'autre)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est
problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback de fonction Windev.
C'est performant, interruptible, on peut mettre en pause et
reprendre...
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
JeAn-PhI
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
-- Cordialement JeAn-PhI
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est
problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback
de fonction Windev.
C'est performant, interruptible, on peut mettre en pause et reprendre...
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
-- Cordialement JeAn-PhI
patrice
"JeAn-PhI" a écrit dans le message de news:49b6249e$0$5260$
Gilles a formulé la demande : > Après mure réflexion, Gilles a écrit : >> Bonjour, >> >> fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est
>> problématique. > > Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback
> de fonction Windev. > C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
--
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de
news:49b6249e$0$5260$426a34cc@news.free.fr...
Gilles a formulé la demande :
> Après mure réflexion, Gilles a écrit :
>> Bonjour,
>>
>> fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est
>> problématique.
>
> Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback
> de fonction Windev.
> C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
--
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit
?
"JeAn-PhI" a écrit dans le message de news:49b6249e$0$5260$
Gilles a formulé la demande : > Après mure réflexion, Gilles a écrit : >> Bonjour, >> >> fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est
>> problématique. > > Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback
> de fonction Windev. > C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
--
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
Romain PETIT
patrice vient de nous annoncer :
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
patrice vient de nous annoncer :
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit
?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup
moins performant...(cf 1 post).
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
patrice
"Romain PETIT" a écrit dans le message de news:
patrice vient de nous annoncer : > c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit,
fecrit
> ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
mea culpa, pas lu le premier post. mais meme avec les api, la taille du buffer influe sur le temps. faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le faire sans (trop) de perte de performance.
"Romain PETIT" <VoirM@Signature.fin> a écrit dans le message de
news:mn.52537d93ef01cea0.2248@Signature.fin...
patrice vient de nous annoncer :
> c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit,
fecrit
> ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup
moins performant...(cf 1 post).
mea culpa, pas lu le premier post.
mais meme avec les api, la taille du buffer influe sur le temps.
faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le
faire sans (trop) de perte de performance.
patrice vient de nous annoncer : > c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit,
fecrit
> ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
mea culpa, pas lu le premier post. mais meme avec les api, la taille du buffer influe sur le temps. faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le faire sans (trop) de perte de performance.
Gilles
patrice a présenté l'énoncé suivant :
"Romain PETIT" a écrit dans le message de news:
patrice vient de nous annoncer :
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
mea culpa, pas lu le premier post. mais meme avec les api, la taille du buffer influe sur le temps. faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le faire sans (trop) de perte de performance.
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
patrice a présenté l'énoncé suivant :
"Romain PETIT" <VoirM@Signature.fin> a écrit dans le message de
news:mn.52537d93ef01cea0.2248@Signature.fin...
patrice vient de nous annoncer :
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit
?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup
moins performant...(cf 1 post).
mea culpa, pas lu le premier post.
mais meme avec les api, la taille du buffer influe sur le temps.
faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le
faire sans (trop) de perte de performance.
Déjà essayé, ca reste toujours médiocre par rapport à l'API.
On ne sait pas comment est codé flit/fecrit...
c'est si compliqué que ca d'utiliser fouvre, et un boucle avec flit, fecrit ?
Il n'a pas dit que c'était compliqué, il a dit que c'était beaucoup moins performant...(cf 1 post).
mea culpa, pas lu le premier post. mais meme avec les api, la taille du buffer influe sur le temps. faut essayer sous windev avec un gros buffer fixe (64ko) et ca devrait le faire sans (trop) de perte de performance.
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
patrice
"Gilles" a écrit dans le message de news:
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.52a27d930df9dec2.21586@neogie.com...
Déjà essayé, ca reste toujours médiocre par rapport à l'API.
On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
Gilles
JeAn-PhI avait écrit le 10/03/2009 :
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API :
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource sLocDest est une chaîne=sDest bRetourApi est un booléen nExistingFileName est un entier=&sLocSource //Ici l'adresse de la chaine, pourrait être la chaine en direct nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine, pourrait être la chaine en direct nData est un entier nCancel est un entier nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8 octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize est un entier sur 8 octets,nStreamBytesTransferred est un entier sur 8 octets,nStreamNumber est un entier sans signe sur 4 octets,nCallbackReason est un entier sans signe sur 4 octets,hSourceFile est un entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie //Pour les autres paramètres voir la MSDN //http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx SI ToucheEnfoncée(teEchap,Faux) ALORS RENVOYER 1 FIN
Voilà, enjoy ;)
JeAn-PhI avait écrit le 10/03/2009 :
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback de fonction Windev.
C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API
:
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource
sLocDest est une chaîne=sDest
bRetourApi est un booléen
nExistingFileName est un entier=&sLocSource //Ici l'adresse de la
chaine, pourrait être la chaine en direct
nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine,
pourrait être la chaine en direct
nData est un entier
nCancel est un entier
nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8
octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize
est un entier sur 8 octets,nStreamBytesTransferred est un entier sur 8
octets,nStreamNumber est un entier sans signe sur 4
octets,nCallbackReason est un entier sans signe sur 4
octets,hSourceFile est un entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie
//Pour les autres paramètres voir la MSDN
//http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx
SI ToucheEnfoncée(teEchap,Faux) ALORS
RENVOYER 1
FIN
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API :
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource sLocDest est une chaîne=sDest bRetourApi est un booléen nExistingFileName est un entier=&sLocSource //Ici l'adresse de la chaine, pourrait être la chaine en direct nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine, pourrait être la chaine en direct nData est un entier nCancel est un entier nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8 octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize est un entier sur 8 octets,nStreamBytesTransferred est un entier sur 8 octets,nStreamNumber est un entier sans signe sur 4 octets,nCallbackReason est un entier sans signe sur 4 octets,hSourceFile est un entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie //Pour les autres paramètres voir la MSDN //http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx SI ToucheEnfoncée(teEchap,Faux) ALORS RENVOYER 1 FIN
Voilà, enjoy ;)
Gilles
patrice a émis l'idée suivante :
"Gilles" a écrit dans le message de news:
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
Ben vui ;) Mais rien que sur un simple test de boucle (du moins en V11, je ne sais pas si leur nouveau moteur JIT est plus performant), Windev se fait exploser par la même chose en C, ou même en C#...
Donc je ne suis pas vraiment surpris des résultats, les I/O dans Windev n'ont jamais été délirants sur tous les traitements de fichiers que j'ai eu à faire jusqu'ici, ça marche mais il ne faut pas chercher les grandes performances.
Comme mon projet consiste à copier/déplacer des centaines de mo voire des go, le passage via l'API fait toute la différence.
Et quand on copie un fichier qui fait 300mo, la jauge est primordiale.
Il faut encore que je puisse mette ça dans un thread différent du principal, sinon ca gèle l'appli pendant la copie, ça ne devrait pas être trop difficile.
Gilles.
patrice a émis l'idée suivante :
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.52a27d930df9dec2.21586@neogie.com...
Déjà essayé, ca reste toujours médiocre par rapport à l'API.
On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
Ben vui ;)
Mais rien que sur un simple test de boucle (du moins en V11, je ne sais
pas si leur nouveau moteur JIT est plus performant), Windev se fait
exploser par la même chose en C, ou même en C#...
Donc je ne suis pas vraiment surpris des résultats, les I/O dans Windev
n'ont jamais été délirants sur tous les traitements de fichiers que
j'ai eu à faire jusqu'ici, ça marche mais il ne faut pas chercher les
grandes performances.
Comme mon projet consiste à copier/déplacer des centaines de mo voire
des go, le passage via l'API fait toute la différence.
Et quand on copie un fichier qui fait 300mo, la jauge est primordiale.
Il faut encore que je puisse mette ça dans un thread différent du
principal, sinon ca gèle l'appli pendant la copie, ça ne devrait pas
être trop difficile.
Déjà essayé, ca reste toujours médiocre par rapport à l'API. On ne sait pas comment est codé flit/fecrit...
vous utilisez bien la syntaxe avec buffer : fLit(nIdSrc,nLire,&buf) ?
Ben vui ;) Mais rien que sur un simple test de boucle (du moins en V11, je ne sais pas si leur nouveau moteur JIT est plus performant), Windev se fait exploser par la même chose en C, ou même en C#...
Donc je ne suis pas vraiment surpris des résultats, les I/O dans Windev n'ont jamais été délirants sur tous les traitements de fichiers que j'ai eu à faire jusqu'ici, ça marche mais il ne faut pas chercher les grandes performances.
Comme mon projet consiste à copier/déplacer des centaines de mo voire des go, le passage via l'API fait toute la différence.
Et quand on copie un fichier qui fait 300mo, la jauge est primordiale.
Il faut encore que je puisse mette ça dans un thread différent du principal, sinon ca gèle l'appli pendant la copie, ça ne devrait pas être trop difficile.
Gilles.
JeAn-PhI
Gilles avait prétendu :
JeAn-PhI avait écrit le 10/03/2009 :
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API :
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource sLocDest est une chaîne=sDest bRetourApi est un booléen nExistingFileName est un entier=&sLocSource //Ici l'adresse de la chaine, pourrait être la chaine en direct nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine, pourrait être la chaine en direct nData est un entier nCancel est un entier nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8 octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize est un entier sur 8 octets,nStreamBytesTransferred est un entier sur 8 octets,nStreamNumber est un entier sans signe sur 4 octets,nCallbackReason est un entier sans signe sur 4 octets,hSourceFile est un entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie //Pour les autres paramètres voir la MSDN //http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx SI ToucheEnfoncée(teEchap,Faux) ALORS RENVOYER 1 FIN
Voilà, enjoy ;)
merci
-- Cordialement JeAn-PhI
Gilles avait prétendu :
JeAn-PhI avait écrit le 10/03/2009 :
Gilles a formulé la demande :
Après mure réflexion, Gilles a écrit :
Bonjour,
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge
est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une
callback de fonction Windev.
C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API :
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource
sLocDest est une chaîne=sDest
bRetourApi est un booléen
nExistingFileName est un entier=&sLocSource //Ici l'adresse de la chaine,
pourrait être la chaine en direct
nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine, pourrait
être la chaine en direct
nData est un entier
nCancel est un entier
nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8
octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize est un
entier sur 8 octets,nStreamBytesTransferred est un entier sur 8
octets,nStreamNumber est un entier sans signe sur 4 octets,nCallbackReason
est un entier sans signe sur 4 octets,hSourceFile est un
entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie
//Pour les autres paramètres voir la MSDN
//http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx
SI ToucheEnfoncée(teEchap,Faux) ALORS
RENVOYER 1
FIN
fCopieFichier fonctionne, mais sur de gros fichiers, l'absence de jauge est problématique.
Pour ceux que ça interesse, j'ai fini par le faire avec l'API et une callback de fonction Windev. C'est performant, interruptible, on peut mettre en pause et reprendre...
vous pouvez mettre un exemple ici ?
voui, il faut deux fonctions, une principale et une callback pour l'API :
FONCTION fCopieFic(sSource est une chaîne,sDest est une chaîne)
sLocSource est une chaîne=sSource sLocDest est une chaîne=sDest bRetourApi est un booléen nExistingFileName est un entier=&sLocSource //Ici l'adresse de la chaine, pourrait être la chaine en direct nNewFileName est un entier=&sLocDest //Ici l'adresse de la chaine, pourrait être la chaine en direct nData est un entier nCancel est un entier nCopyFlags est un entier
FONCTION fCopyProgressRoutine(nTotalFileSize est un entier sur 8 octets,nTotalBytesTransferred est un entier sur 8 octets,nStreamSize est un entier sur 8 octets,nStreamBytesTransferred est un entier sur 8 octets,nStreamNumber est un entier sans signe sur 4 octets,nCallbackReason est un entier sans signe sur 4 octets,hSourceFile est un entier,hDestinationFile est un entier)
Jauge(nTotalBytesTransferred,nTotalFileSize)
//Annulation de la copie //Pour les autres paramètres voir la MSDN //http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx SI ToucheEnfoncée(teEchap,Faux) ALORS RENVOYER 1 FIN