Code marche pas need aide - VB/VBA/VBS - Programmation
Marsh Posté le 11-06-2010 à 11:11:09
C'est du VBS.
Ce code a l'air correct au point de vue de la syntaxe.
Pourquoi ça ne marche pas ? A quel endroit ? Où est le problème ?
Je devine qu'il faudrait tester si pos est 0 ou non, pour supprimer ou pas le fichier.
Si les fichiers contiennent des données binaires, cela ne marchera pas, car vous utilisez OpenTextFile, qui, comme son nom l'indique, ouvre des fichiers "textes", et pas des fichiers "binaires".
Marsh Posté le 11-06-2010 à 11:12:49
Merci pour la reponse. J'ai pas mis en relation supprimer le fichier si la recherche est bonne .
Marsh Posté le 11-06-2010 à 11:17:15
Beaucoup de code inutile dans son code :
- lignes 5 à 9 : pourquoi afficher le nom de chaque fichier rencontré dans le répertoire ?
- ligne 12 : pourquoi recréer un second objet FileSystemObject alors qu'il en existe déjà un ?
- lignes 16 et 17 : rien compris... elle est où la chaine dans laquelle les occurences de "na" doivent être recherchées ? et pourquoi 2 lignes (dont une avec une erreur, la 17 : il manque une guillemet fermante)
Et la condition de suppression en cas d'occurence trouvée, elle est où ? Le File.Delete se fait inconditionnellement...
Bref, ce code a un gros problème d'algo. Je te suggère de tout refaire sur papier, et de bien séparer les différentes étapes du traitement parce que là, c'est n'importe quoi.
Marsh Posté le 11-06-2010 à 11:21:32
Je sait pas faire une suppression en cas d'occurence trouvée.
Marsh Posté le 11-06-2010 à 11:24:06
J'ai fait les modification que tu ma dit il en manque quelque une mais je suis pas bon en bvs.
Code :
|
Marsh Posté le 11-06-2010 à 11:32:28
A quel moment dans ton code tu demandes de supprimer le fichier si celui ci contient les lettres "na" ? Ce n'est pas une question d'être bon en VBS ou pas, mais une question d'algo : à la ligne 13, tu effaces un fichier (rebut), dont on se demande ce qu'il vient faire là (a t'il les lettres "na" dans son nom ? non. Alors pourquoi l'effacer ?). Mais tu n'associes aucune condition à cet effacement.
Reprends tout depuis le début, et décompose les différentes tâches de ton traitement.
Marsh Posté le 11-06-2010 à 12:15:52
C'est mieux ou pas ?
Code :
|
Marsh Posté le 11-06-2010 à 12:18:11
Tu fais n'importe quoi, tu ne déclares rien, tu marches à l'aveuglette... la ligne 13 ne ressemble à rien du tout
Marsh Posté le 11-06-2010 à 12:24:54
- UCase est une fonction, et toi tu l'utilises comme variable : http://msdn.microsoft.com/en-us/li [...] S.85).aspx
- AFile, c'est quoi ? Tu ne déclares cette variable nulle part...
- Les lignes 11 et 12 sont identiques et totalement inutiles (le seul truc à garder c'est InStr, qui te permet effectivement de rechercher une occurence d'une chaine dans une autre, mais que tu emploies n'importe comment)
- et j'en passe....
Marsh Posté le 11-06-2010 à 14:28:39
Hello
Comme le dit Harkonnen, pose ton algorithme calmement.
Pas obligé de faire un truc super compliqué. Moi de ce que j'en ai compris, tu veux supprimer les fichiers qui se trouvent dans le dossier <rebut> si leur nom contient "na"
C'est tres simple a poser
Pour chaque fichier dans <rebut>
Si "na" est dans le nom alors on supprime le fichier
Fin si
Suivant
Donc ton script en VBS ne devrait pas faire 13 lignes mais 6/7 a tout casser.
Tu prends l'algo ennoncé juste avant, et tu le transcris en VBS. Et si tu as bien declaré tes variables ca roule tout seul.
Marsh Posté le 11-06-2010 à 15:08:47
oui mais pour faire sa faut que mon algo contienne
aille dans rebut l'ouvre, le li et recherche dedans et apres suprime si na est dedans sa fait pas 6/7 ligne nn ?
Marsh Posté le 11-06-2010 à 15:16:42
j'i fait sa qui marche il va chercher et ouvre le fichier.
Code :
|
Marsh Posté le 11-06-2010 à 15:49:37
Déjà si tu ecrivais en français c'est clair que ca aiderait...
Citation : il les regarde un par un et supprime les fichiers contenant les mot "na" |
Moi j'avais compris dans le nom du fichier. Rien a voir avec ma remarque du dessus.
Declare tes variables sinon en vbs ca tournera pas, mais en gros ca donnerait ca
Code :
|
Marsh Posté le 11-06-2010 à 15:55:55
SuppotDeSaTante a écrit : Déjà si tu ecrivais en français c'est clair que ca aiderait...
Moi j'avais compris dans le nom du fichier. Rien a voir avec ma remarque du dessus. |
mais bondieu, j'avais compris la même chose
Marsh Posté le 14-06-2010 à 12:03:03
Merci de ton aide . j'ai essayer le code il ne supprime pas mais il marche bien et s'exécute .
Marsh Posté le 14-06-2010 à 14:59:03
ReplyMarsh Posté le 14-06-2010 à 15:26:23
Code :
|
Marsh Posté le 14-06-2010 à 16:31:54
SuppotDeSaTante a écrit : Declare tes variables sinon en vbs ca tournera pas, mais en gros ca donnerait ca |
Je suis de bonne humeur et tu as l'air d'en chier :
Tu colles ca dans un fichier .vbs
Code :
|
Marsh Posté le 11-06-2010 à 10:59:58
Bonjour,
je voudrais que mon programme aille dans c:\QUEUS\cro\rebut et que les fichier qu'il y a dans x il les regarde un par un et supprime les fichiers contenant les mot "na" .
Petit code préalable que j'ai fait mais sans succèes j'ai besoin que vous me le conpléter .
Merci d'avance j'espère que vous m'aiderez
Coordialement, .Toxyco.