Salut tout le monde,

Le newbie est de retour .

Je cherche cette fois ci à adapter le script fait précédement pour supprimer une ligne dans un fichier txt si elle contient une chaine de caractére bien spécifique.

Mon probléme réside dans le fait de supprimer la ligne (petite précision je ne peut pas savoir a l'avance le nombre de caractere à supprimer).

Etant en stage est vraiment bousculer par le temps je vous met le code initiale et file faire des recherche plus approfondit...

Merci d'avance à tout ceux qui prendrons le temps de m'aider


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Option Explicit 
 
'----------
'déclaration des variables et constante
'----------
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objFso, objFile,objFolder, strPath, strExt,fso,WshShell,ftxt,oFso,strdossier,strextension,strToSearch,strFilePath,objTempStream,objTempNewFile,strtemp
Dim File,sChaine,pos,proclu,exp2k21,lignes,schaine2
strExtension = "txt"
strToSearch = "END"
'----------
'Chemin du repertoire à parcourir et extension à rechercher
'----------
strPath = "chemindurepertoire"
strExt = "txt"
 
'----------
'Création du dossier pour la copie
'----------
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("chemindurepertoire")
Set objFso = CreateObject("Scripting.FileSystemObject")
 
'----------
'Saisie de l'imprimante à rechercher et de l'imprimante à ajouter
'----------
exp2k21 = inputbox("saisir le nom de la file d'impression à rechercher sur le serveur [exp2k21]")
sChaine ="netprinter|\\exp2k21\"&exp2k21&"|"
proclu = inputbox("saisir le nom de l'imprimante à ajouter sur le serveur [proclu01ps]")
schaine2="netprinter|\\proclu01ps\"&proclu&"|N"
 
'----------
'Parcour des fichiers txt du repertoire + convertion en minuscule de chaque ligne de fichier
'----------
Call ShowFileTxtFolder(strExt)
Set objFso = Nothing
Function ShowFileTxtFolder (strExt)
For Each objFile In objFso.GetFolder(strPath).Files
    If LCase(objFso.GetExtensionName(objFile.Path)) = LCase(strExt) Then
       Set File = objFso.OpenTextFile(objfile.Path, ForReading)
	while Not File.AtEndOfStream   
	lignes = File.Readline	
	lignes = Lcase(lignes)
'----------
' Recherche d'une chaine de caractère dans les lignes du fichier txt 
' Copie du fichier dans le nouveau repertoire si chaine trouvée
'----------
pos=InStr(lignes,schaine)
if pos = 1 then      
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Ftxt = fso.GetFile(objfile.Path)'fichier source   
Ftxt.copy("chemindurepertoire")'chemin du repertoire de copie 
end if 
wend
File.Close
Set File = nothing
End if   
Next
'----------
' Recherche et remplacement de la chaine END pour l 'ensemble des fichiers déplacés 
' Par le mappage de l'imprimante sur proclu01ps 
' Rajout de END en fin de fichier
'----------
strdossier = "C:\Documents and Settings\NBoubaaya1\Bureau\COPIIEE" '===>'chemin du repertoire à parcourir
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(strdossier)
For Each objFile In objFolder.Files
	strFilePath = objFile.Path
	If LCase(objFso.GetExtensionName(strFilePath)) = LCase(strExtension) Then
		Set objTempStream = objFso.OpenTextFile(strFilePath, 1)
		Set objTempNewFile = objFso.CreateTextFile(strFilePath & ".temp", 2)
		Do While NOT objTempStream.AtEndOfStream
			strTemp = objTempStream.ReadLine
			If Instr(strTemp, strToSearch) = 0 Then
				objTempNewFile.WriteLine strTemp
			Else
				objTempNewFile.WriteLine schaine2
				objTempNewFile.WriteLine "END"
			End If
		Loop
		objTempStream.Close
		objTempNewFile.Close
		objFile.Delete
		objFso.MoveFile strFilePath & ".temp", strFilePath
	End If
Next
End Function
Wscript.Echo "Fin du programme"