FSO : Traiter des fichiers

ZedMaTrix Messages postés 178 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 14 août 2008 - 26 juin 2007 à 09:05
ZedMaTrix Messages postés 178 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 14 août 2008 - 3 juil. 2007 à 13:17
Bonjours à tous.

Je suis en train de travail en VB6 sur un soft pour traiter des fichiers.
Donc je me suis tourner vers le FSO avec sa fameuse boucle For each lobjFil in lobjFol.
Tout vas bien c'est cool.
Maintenant, je veux prendre en compte le temps cpu pour plus ou moin traiter des fichiers pour éviter de saturer le cpu et donc ralentir la machine.

Bon j'ai déjà fais tout le code pour connaitre le temps cpu, j'ai fais un boolean qui indique si on dépasse la limite ou pas.
Ce code là est biensure dans un Timer.

Maintenant, je me dis, OK ... comment faire avec cette boucle For each, et mon timer...

J'ai essayé donc de voire si on pouvait faire un GetFolder et ensuite dire monobjet.Item(Index) mais ca ne marche pas.
Donc je cherche un truc pour séléctionner les fichiers d'un dossier, et pourvoir les appeler avec un Index lorsque mon boolean est True

Merci par avance !

ZedMaTriX

8 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
26 juin 2007 à 09:13
Salut,
J'ai pas très bien compris le problème.

@+: Ju£i?n
Pensez: Réponse acceptée
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
26 juin 2007 à 09:40
son problème est de faire sa boucle For mais en différé : genre la faire patienter si le processeur est utilisé ...

je programme en VB 2005 donc désolé si ça change un peu mais voilà ce que je fais dans ce cas là (sans timer)

Dim t As New Thread(AdressOf TaBoucle)
t.isBackground = true
t.start

Sub TaBoucle
dim [tonboolean] as boolean = false ' pour l'exemple [tonboolean] = true si le CPU est utilisé

For each ....
' ta boucle
Do
if [tonboolean] = false then
' on fait ce qu'on a a faire
else
Thread.Sleep(500)
end if
Loop

Next

End sub
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 juin 2007 à 10:01
question semi-stupide : peut-on utiliser les Threads en vb6 ?? si oui, je suis interessé !

_______________________________________________________________________

Quel est la différence entre Win95, Win98 et un virus ??
Le virus, lui, au moins, il fonctionne !
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
26 juin 2007 à 10:39
lol VB6 est vieu mais quand même pas à ce point là!

pour la syntaxe ça je peux pas te dire vu que je programme uniquement dans les languages .NET
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZedMaTrix Messages postés 178 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 14 août 2008
26 juin 2007 à 15:37
Les threads en VB6 existent, mais ne sont pas asser bien géré. C'est totalement instable !

Donc la technique du thread est bonne ... mais pas en vb6

ZedMaTriX
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
26 juin 2007 à 15:45
ah bon c'est mal géré ?
je savais pas ^^
0
ZedMaTrix Messages postés 178 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 14 août 2008
26 juin 2007 à 15:46
J'avais pensé sinon, faire la boucle sur les fichiers ( For each fichier in dossier ) qui enregistre dans une collection par exemple ou un variant,
tout les noms des fichiers, puis le timer se lance, et selon si le boolean est true ou pas, je traite un fichier ou pas.
Et là, j'ai mon système d'index, qui me permet d'appeler de n'importe ou ( déclaration en public ) les fichiers...

Mais le soucis de cette méthode, c'est mettre tout les noms des fichiers en mémoire ... et comme je peut en avoir des .... milliers ...
Je vais faire des tests ...

Mais je surveille si il y a des idées de génies !

ZedMaTriX
0
ZedMaTrix Messages postés 178 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 14 août 2008
3 juil. 2007 à 13:17
Bon ben j'ai fait l'utilisation d'un boolean dans mon timer et ca roule !

ZedMaTriX
0