[VBS] recherche d'une chaine de caractere dans different fichiers

recherche d'une chaine de caractere dans different fichiers [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 15-06-2007 à 18:14:52    

Bonjour,
 
Je recherchais un petit soft pour faire une recherche de chaine de caractere dans une liste de fichiers, j'avais creer un post mais je n'ai pas trouve mon bonheur, j'ai donc essayer de me faire un vbs.
 
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
 
Je réexplique mon soucit :

Citation :

Je recherche un soft qui me permettrais de faire une recherche de chaine de caractere a l'interieur de fichier qui sont lisiblent en notepad (ce sont des fichier Lotus Notes : desktop5.dsk et desktop6.ndk), ces fichiers sont dans differents repertoires.
 
Exemple d'arborescence :
http://img217.imageshack.us/img217/7884/listeog4.th.jpg
 
je veux que la recherche se fasse que dans les deux fichiers citees.


 
 

Code :
  1. Option explicit
  2. dim strline
  3. Dim ObjFSO
  4. Dim ObjFile
  5. dim strline2
  6. Dim ObjFSO2
  7. Dim ObjFile2
  8. dim ObjFileRapport
  9. dim ObjRapport
  10. dim rapport
  11. dim chaine_recherche
  12. dim resultat_scan
  13. dim liste
  14. Const ForWriting = 2
  15. const ForReading = 1
  16. chaine_recherche = "M:\" 'Chaine de caractere a chercher dans les desktops
  17. rapport = "rapport.txt" 'Fichier rapport des scans des desktops
  18. liste = "liste.txt" 'Fichier ou se trouve toutes les lignes des chemins des fichier desktop, ex : X:\GUIOTVI1\NOSYNC\Notes\Data\desktop5.DSK
  19. Set ObjRapport = CreateObject("Scripting.FileSystemObject" )
  20. Set ObjFileRapport = ObjRapport.CreateTextFile(rapport,ForWriting)
  21. ObjFileRapport.Writeline "Rapport des users qui utilise une archive sur le S2024 - Date : "  & Now
  22. ObjFileRapport.WriteBlankLines(2)
  23. ObjFileRapport.close
  24. Set objFSO = CreateObject("Scripting.FileSystemObject" )
  25. Set objFile = objFSO.OpenTextFile(liste,1)
  26. strLine = objFile.ReadLine
  27. wscript.echo strLine
  28. Do Until objFile.AtEndOfStream
  29. strLine = objFile.ReadLine
  30. Set objFile2 = objFSO.OpenTextFile(strLine,ForReading)
  31. strLine2 = objFile2.ReadLine
  32. wscript.echo strLine2
  33.   Do Until objFile2.AtEndOfStream
  34.   strLine2 = objFile2.ReadLine
  35.   resultat_scan = instr(1,strLine2,chaine_recherche)
  36.   wscript.echo resultat_scan
  37.    If resultat_scan = 0 Then
  38.     ObjFileRapport.Writeline strLine & ";NON;0"
  39.     ObjFileRapport.close
  40.     wscript.echo "Pas de M:\"
  41.    Else
  42.     ObjFileRapport.Writeline strLine & ";OUI;" & resultat_scan
  43.     ObjFileRapport.close
  44.     wscript.echo "Y a un M:\"
  45.    End If
  46.   Loop
  47. Loop
  48. wscript.echo "Rapport S2024 fini."


 
Je precise que je ne suis pas devellopeur et ne maitrise pas beaucoup vbs  :)
 
Quand je lance le vbs voici ce qui en resulte :
- le fichier rapport.txt est bien creer et la ligne "Rapport des users qui [...]" est bien ecrite, mais rien d'autre en dessous...
- j'ai un popup avec la ligne dans le fichier texte qui s'affiche (c:\test\desktop6.dnk)
- j'ai un popup disant que le rapport est fini aussi
 
En gros j'ai l'impression que mon script ne fais rien a partir du moment ou je commence ma premiere boucle...
 
Help !!!   :cry:


---------------
Canon EOS 7D - Canon 17-55 f2.8 IS - Canon L 70-200 f4 - Flash Nissim 622
Reply

Marsh Posté le 15-06-2007 à 18:14:52   

Reply

Marsh Posté le 21-06-2007 à 21:57:33    

Moi j'enléverai les close de ton fichier rapport.
Tu ouvres, le fichier au début et tu ne le fermes qu'à la fin.

Reply

Marsh Posté le 21-06-2007 à 22:50:46    

Grâce à vos wscript.echo, vous devriez voir par où le programme passe. S'il le faut, mettez en plus, par exemple, après chaque readline, c'est indispensable pour debugguer les programmes en VBS.
 
A première vue, mais je peux me tromper, je soupçonne que les fichiers à explorer n'ont pas le bon format. En gros, il existe trois formats : 1. fichier texte ordinaire, 2. fichier texte unicode, 3. fichier binaire. Le mode d'ouverture et de lecture de fichier que vous avez choisi n'est valable que pour le premier format. Il faudrait faire l'essai de votre programme avec un jeu de tests que vous maitrisez totalement, par exemple avec des fichiers que vous avez créés vous-même avec notepad (le bloc-notes), plutôt qu'avec ces fichiers dont le format est peut-être spécial.
 
Edit : Et la remarque de jcdumas est très juste.


Message édité par olivthill le 21-06-2007 à 22:52:00
Reply

Marsh Posté le 22-06-2007 à 11:26:45    

@olivthill : tu me vouvoie ?  :'( je suis pas si vieux !  :)
Sinon tu as completement raison ce sont les tests que j'ai fais (sur un fichier .txt que j'ai fais) et il fonctionne bien (enfin pas le script au dessus car j'ai fais des modif depuis)...
Merci !


---------------
Canon EOS 7D - Canon 17-55 f2.8 IS - Canon L 70-200 f4 - Flash Nissim 622
Reply

Sujets relatifs:

Leave a Replay

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